从另一个项目中删除一个项目数组的最快方法是什么?
我有两个字符串数组:
string[] all = new string[]{"a", "b", "c", "d"} string[] taken = new string[]{"a", "b"}
我想用c
和d
生成一个新的字符串数组。
在没有手动循环和创建新列表的情况下, .net 3.5
任何快速方法都能做到这一点吗?
var remains = all.Except(taken);
请注意,这不会返回数组。 但你需要问问自己,你是否真的需要一个数组,或者IEnumerable是否更合适(提示:它几乎总是如此)。 如果你真的需要一个数组,你可以调用.ToArray()
来获取它。
在这种情况下, 不立即使用arrays可能会有很大的性能优势。 考虑一下“all”系列中的“a”到“d”,以及“take”系列中的“a”和“b”。 此时,“遗留”变量尚未包含任何数据。 相反,它是一个知道如何告诉你在你问它时会有什么数据的对象。 如果您从未真正需要该变量,那么您从未做过任何工作来计算其中的项目。
你正在使用LINQ Except
,就像all.Except(taken)
。 Except
all.Except(taken)
。
string[] result = all.Except(taken).ToArray ();
- PInvoke和EntryPointNotFoundException
- 使用CruiseControl.NET和MSBuild发布网站
- 带有urlencoded字符的System.Net.Uri
- 为什么C#ProcessStartInfoRedirectStandardOutput会导致xcopy进程失败
- 如何在Linq to SQL中使用distinct with group
- ASP.NET MVC自定义视图路由
- 使用C#和.NET Framework进行屏幕抓取,Web抓取,Web收集,Web数据提取等
- System.Data.OleDb.OleDbConnectionInternal..ctor:未指定的错误
- 执行2个位图的重叠检测