c# - 从另一个项目中删除一组项目的最快方法是什么?

标签 c# .net arrays

我有两个字符串数组:

 string[] all = new string[]{"a", "b", "c", "d"}

 string[] taken = new string[]{"a", "b"}

我想用 cd 生成一个新的字符串数组,它是 all - taken

.net 3.5 中有没有快速的方法来做到这一点而无需手动循环和创建新列表?

最佳答案

var remains = all.Except(taken);

请注意,这返回一个数组。但是您需要问问自己是否真的需要数组,或者 IEnumerable 是否更合适(提示:几乎总是如此)。如果你真的需要一个数组,你可以调用 .ToArray() 来获取它。

在这种情况下,立即使用数组可能会有很大的性能优势。假设您在“全部”集合中有“a”到“d”,在“采取”集合中有“a”和“b”。此时,“remains”变量还不包含任何数据。相反,它是一个对象,知道如何告诉您当您询问时会有哪些数据。如果您实际上从未需要该变量,那么您就不会做任何工作来计算其中包含哪些项目。

关于c# - 从另一个项目中删除一组项目的最快方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1884709/

相关文章:

.net - 维护 web.config 文件

c - c程序的程序输出

php pdo多数组插入

C# 通用接口(interface)

c# - C# 的垃圾收集会导致实时音频应用程序出现问题吗?

c# - 没有等待时删除信号量

java - 返回递归中的数字集

c# - 如何反序列化列表中的 JSON 数组 (C#)

c# - 使用 `ToArray` 方法复制数组

c# - 通过 C# 代码将 appSettings 部分添加到 web.config