Gruppe Liste der Objekte, die auf der Grundlage von Eigentum mit Linq?
Ich habe ein Objekt:
public class SiteInfo
{
public string Title { get; set; }
public string URL { get; set; }
public string Type { get; set; }
}
Dass ich mit um eine Liste zu erstellen:
var sites = new Liste();
foreach (SPWeb site in web.GetSubwebsForCurrentUser())
{
string sitetype = getConfigurationKey(site, "siteType");
//If sites have a site type then add to list
if (sitetype != "*ERROR*" && sitetype != "*KEYNOTFOUND*")
{
SiteInfo s = new SiteInfo();
s.Title = site.Title;
s.URL = site.Url;
s.Type = sitetype;
sites.Add(s);
}
}
//sort list by type
sites.Sort((x, y) => string.Compare(x.Type, y.Type));
//serialize and send..
JavaScriptSerializer serializer = new JavaScriptSerializer();
StringBuilder sbJsonResults = new StringBuilder();
serializer.Serialize(sites, sbJsonResults);
etc.....
Jedoch, was ich gerne tun würde, ist die Gruppe der Websites Geben vor der Serialisierung von Ihnen. Ist das möglich mit LINQ oder eine andere Methode.
- OrderBy, vielleicht
- Ich würde anfangen, durch das betrachten einer Liste aller LINQ-Methoden und sehen, wenn irgendwelche von Ihnen schauen, wie Sie beziehen sich möglicherweise auf die Gruppierung der Funktionen. Wenn Sie das tun,
GroupBy
sollte hoffentlich stechen Sie. -1 für eindeutig setzen, keine Forschung.
InformationsquelleAutor BlueBird | 2013-02-01
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Klingt es wie Sie wollen, so etwas wie:
Dann einfach serialisieren
grouped
. Allerdings, ich weiß nicht Recht, was für einIGrouping
Aussehen wird, JSON... und der Typ in jedem Fall. Sie kann möchte etwas wie:Ich denke, die Ihnen würde ein schöner JSON-Struktur.
Diese
produzieren würde
oder
produzieren würde
Hier ist eine einfache Konsolenanwendung, die tut, was Sie wollen:
Ausgabe: