例如,我有两个数组:
string[] arrayOne = {"One", "Two", "Three", "Three", "Three"};
string[] arrayTwo = {"One", "Two", "Three"};
var result = arrayOne.Except(arrayTwo);
foreach (string s in result) Console.WriteLine(s);
我想要的物品来自arrayOne
哪些不存在于arrayTwo
。所以在这里我需要结果为:Three Three
但我没有得到任何结果,因为它将“三”视为常见并且没有检查其他两项(“三”,“三”)。
我不想最终编写一个巨大的方法来解决这个问题。尝试了其他几个答案,但没有按预期工作:(。
谢谢!!!
构建第二个 HashSet,然后过滤第一个,仅允许项目(如果无法从 HashSet 中删除项目)。
var hs = new HashSet<string>(arrayTwo);
var filtered = arrayOne.Where(item => !hs.Remove(item)).ToArray();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)