获取List <string>中的字符串,不包括List <string []> </string []> </string>中的字符串

时间:2011-01-27 22:10:20

标签: c#

除了List<string>中显示的字符串外,我如何获取List<string[]>中显示的所有字符串。如果他们List<string>做了

,我可以让它工作
IEnumerable<string> list3 = List1.Except(List2);

但我无法弄清楚如何使用List<string[0]>取代list2

1 个答案:

答案 0 :(得分:6)

您应该使用SelectManyList<string[]>展平为单个IEnumerable<string>。假设list2的类型为List<string[]>,您可以执行以下操作:

var list3 = list1.Except(list2.SelectMany(x=>x));

但是,如果您只想要string[]中的第一个List<string[]>,那么假设列表中至少有一个条目,您可以这样做:

var list3 = list1.Except(list2.First());

其他
list2.SelectMany(x=>x)相当于:

var flattenedList2 = from x in list2
                     from y in x
                     select x;