我有两个字符串数组。
我想从数组 a 中移除任何也存在于数组 b 中的项目,或者返回仅包含那些只存在于数组 a 中的项目的新数组。
因此,举个例子,如果:
“而且,”
那么结果应该是什么。
有没有一个简洁的lambda表达式或Linq或其他可以用来做这个的东西?
谢谢,
Sachin
string[] a = ...
string[] b = ...
我想从数组 a 中移除任何也存在于数组 b 中的项目,或者返回仅包含那些只存在于数组 a 中的项目的新数组。
因此,举个例子,如果:
a={"a", "b", "c"};
“而且,”
b={"b"}
那么结果应该是什么。
{"a", "c"}
有没有一个简洁的lambda表达式或Linq或其他可以用来做这个的东西?
谢谢,
Sachin
a
非常大且b
包含许多项,请考虑使用HashSet:var hashA = new HashSet<string>(a); hashA.ExceptWith(b); return a.ToArray();
这样做的性能是线性的。如果a
很小,则无需优化。 - AndreasExcept
返回一个IEnumerable<T>
。如果你想要一个数组,你需要在这个结果上调用ToArray()
方法。 - cadrell0