【发布时间】:2015-11-19 19:04:48
【问题描述】:
例如,我有两个数组:
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
但我没有得到任何结果,因为它将“三”视为常见而不检查其他两项(“三”,“三”)。
我不想最终编写一个巨大的方法来解决这个问题。在 SO 上尝试了其他几个答案,但没有按预期工作:(。
谢谢!!!
【问题讨论】:
-
只有当它们像现在这样有序并且你在某个索引之后得到了所有东西时才会起作用。否则任何有效的东西都会检查价值与价值,并会认识到三等于三。你能给出一个不需要第一个“三”但需要后面两个的用例吗?这可能会帮助您提出更好的方法建议来回答您的问题。
-
假设数组二是
{"One", "Two", "Three", "Three"};? -
@spender :假设结果应该是
Three。那只是 1 项 -
最终输出的顺序重要吗?
-
这取决于拥有
string[] arrayTwo = {"Two", "Three", "Three", "One"};是否仍会从arrayOne中过滤掉“一”... Habib 不会这样做。
标签: c# .net arrays linq compare