我有一个由List<List<MyType>>
组成的集合,我正在寻找从中创建字符串列表。
MyType在哪里:
class MyType
{
public string Description {get;set;}
}
我希望最终得到一个平面的字符串列表,使用linq以高效的方式使用而不使用for循环。
属性之上是我正在使用的描述。
答案 0 :(得分:3)
怎么样
List<List<MyType>> list = //your list....
var result = list.SelectMany(x => x.Select(y => y.Description));
答案 1 :(得分:1)
假设您的List<List<MyType>>
名为MyList
:
List<string> strings = (from myTypes in MyList
from myType in myTypes
select myType.Description
).ToList();
如果你想在一次拍摄中避免重复:
HashSet<string> myHashSet = new HashSet<string>();
foreach (MyType myType in MyList.SelectMany(myTypes => myTypes))
{
myHashSet.Add(myType.Description);
}
答案 2 :(得分:0)
您可以像这样使用SelectMany
:
var list = SelectMany(x => x).Select(x => x.Description).ToList();
答案 3 :(得分:0)
yourList.SelectMany(x => x.Select(y => y.Description)).ToList();