Raj*_*mar 5 c# linq arrays winforms
我有两个阵列说
var list1 = string[] {"1", "2", "3", "4", "", ""};
var list2 = string[] {"2", "3", "4","",""};
Run Code Online (Sandbox Code Playgroud)
当我尝试使用以下代码从这两个数组中获取常见项目
var listCommon = list1.Intersect(list2);
Run Code Online (Sandbox Code Playgroud)
它给了我这样的结果
string[] {"2", "3", "4", ""}
Run Code Online (Sandbox Code Playgroud)
但我希望它应该像这样返回
string[] {"2", "3", "4", "", ""}
Run Code Online (Sandbox Code Playgroud)
它在交叉时转义为最后一个空字符串值.
设置类似的方法Intersect或Except从每个集合中删除重复项.我假设你想要这样的东西:
var listCommon = list1.Where(list2.Contains);
Run Code Online (Sandbox Code Playgroud)
这不是那么有效.这可能是一个优化:
var l2Lookup = new HashSet<string>(list2);
var listCommon = list1.Where(l2Lookup.Contains);
Run Code Online (Sandbox Code Playgroud)