我有两个字符串数组:
string[] all = new string[]{"a", "b", "c", "d"}
string[] taken = new string[]{"a", "b"}
我想生成一个新的字符串数组,其中包含 c 和 d ,这些元素都不在taken
中。在.NET 3.5中有没有快速的方法可以做到这一点,而无需手动循环并创建新的列表?
var remains = all.Except(taken);
请注意,这并不返回一个数组。但你需要问自己是否真的需要一个数组,或者使用IEnumerable更为恰当(提示:几乎总是这样)。如果你确实需要一个数组,你可以调用.ToArray()方法来获取它。您正在使用LINQ的Except
,例如all.Except(taken)
。
string[] result = all.Except<string>(taken).ToArray<string>();