转换<list <list <strongtype.string>&gt;的有效方法列出<string>

时间:2016-05-27 12:15:09

标签: c# linq

我有一个由List<List<MyType>>组成的集合,我正在寻找从中创建字符串列表。

MyType在哪里:

class MyType
{
   public string Description {get;set;}
}

我希望最终得到一个平面的字符串列表,使用linq以高效的方式使用而不使用for循环。

属性之上是我正在使用的描述。

4 个答案:

答案 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();