私はオブジェクトがあります。グループLinqを使用してプロパティに基づくオブジェクトのリスト?
public class SiteInfo
{
public string Title { get; set; }
public string URL { get; set; }
public string Type { get; set; }
}
私はリストを作成するために使用しています:( VARサイト=新しいリストを)。
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.....
しかし、私がしたいのは、サイトをタイプ別にグループ化してからシリアル化することです。これは、LINQまたは他の方法を使用して可能ですか?
// No need to sort sites first
var grouped = sites.OrderBy(x => x.Type)
.GroupBy(x => x.Type);
それからちょうどシリアライズgrouped
:
[並べ替え、おそらく –
私はLINQのメソッドのすべてのリストを見て、あれば見ることによって開始しますいずれもグループ化機能に関連しているように見えます。そうすれば、 'GroupBy'はうまくあなたに目立つはずです。 -1は明らかに研究努力をしていない。 – Servy