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" }
.
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: