在C#中给出两个数组的最简单的方法是执行设置减法?显然这是
Ruby中的
dead easy.基本上我只想从数组a中的元素中删除数组b:
string[] a = new string[] { "one","two","three","four" }; string[] b = new string[] { "two","four","six" }; string[] c = a - b; // not valid
c应该等于{“一”,“三”}. b – a会产生{“六”}.
解决方法
如果您使用Linq,可以使用
Except operator这样:
string [] c = a.Except(b).ToArray();
编辑:CodeInChaos是一个好点.如果一个包含重复的内容,它也会删除任何重复的.使其功能完全像Ruby版本的替代方法是:
string [] c = a.Where(x=>!b.Contains(x)).ToArray();