我有以下由c#类表示的对象结构:
[
{
Title: "",
Year: 1977,
Categories: ["Action", "Adventure", "Fantasy"],
Score: 96
}
]
此json被序列化为IEnumerable<TitleItem>
个对象,其中Categories
是IList<string>
个对象。
从TitleItem
个对象的集合中,我想获得一个新的IList<string>
个不同的类别。怎么办呢?
答案 0 :(得分:1)
collection.SelectMany(x=>x.Categories).District().ToList()
答案 1 :(得分:1)
您可以使用SelectMany
来&#34;展平&#34;类别列表然后使用Distinct
:
var result = titleItems.SelectMany(item => item.Categories).Distinct().ToList();
答案 2 :(得分:1)
您可以在SelectMany
上执行distinct
然后IEnumerable
:
IEnumerable<TitleItem> items = getItemsFromSomeWhere();
var uniqueTitles = items.SelectMany(i => i.Categories).Distinct().ToList();
答案 3 :(得分:-1)
以下是将返回不同类别的查询
class TitleItem {
public string Title;
public string Year;
public float score;
public IList<string> Categories;
}
var titleItems = new List<TitleItem>();
var titleItem1 = new TitleItem();
titleItem1.Categories = new List<string>();
titleItem1.Categories.Add("Action");
titleItem1.Categories.Add("Adventure");
titleItem1.Categories.Add("Fantasy");
titleItem1.Categories.Add("Action");
titleItems.Add(titleItem1);
var titleItem2 = new TitleItem();
titleItem2.Categories = new List<string>();
titleItem2.Categories.Add("Action");
titleItems.SelectMany(a => a.Categories).Distinct();