C# · 12月 27, 2021

如何在C#中对数组执行设置减法?

在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();