除了List<string>
中显示的字符串外,我如何获取List<string[]>
中显示的所有字符串。如果他们List<string>
做了
IEnumerable<string> list3 = List1.Except(List2);
但我无法弄清楚如何使用List<string[0]>
取代list2
答案 0 :(得分:6)
您应该使用SelectMany
将List<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;