如何在 C# 中对数组执行集合减法?
在 C# 中给定两个数组执行集合减法的最简单方法是什么?显然,这在 Ruby 中非常简单。基本上我只是想从数组 a
中删除数组 b
中的元素:
string[] a = new string[] { "one", "two", "three", "four" };
string[] b = new string[] { "two", "four", "six" };
string[] c = a - b; // not valid
c
应该等于 { "one", "三”}
。 b - a
将产生 { "six" }
。
What's the simplest way to perform a set subtraction given two arrays in C#? Apparently this is dead easy in Ruby. Basically I just want to remove the elements from array a
that are in array b
:
string[] a = new string[] { "one", "two", "three", "four" };
string[] b = new string[] { "two", "four", "six" };
string[] c = a - b; // not valid
c
should equal { "one", "three" }
. b - a
would yield { "six" }
.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您使用的是 Linq,则可以使用 Except 运算符,例如这个:
编辑: CodeInChaos 提出了一个很好的观点。如果
a
包含重复项,它也会删除所有重复项。使其功能与 Ruby 版本完全相同的替代方法是:If you're using Linq, you can use the Except operator like this:
Edit: CodeInChaos makes a good point. If
a
contains duplicates, it will remove any duplicates as well. The alternative to make it function exactly like the Ruby version would be this:这不会从 enum1 中删除重复项。需要明确的是:
我做第一个, Enumerable.Except 执行第二个操作。
This won't remove duplicates from enum1. To be clear:
I do the first, Enumerable.Except does the second.