C#Linq String [] list减去String []列表

aro*_*ron 9 c# linq

让我们说吧

string[] admins = "aron, mike, bob";
string[] users = "mike, katie, sarah";
Run Code Online (Sandbox Code Playgroud)

如何从管理员那里获取用户并删除任何人.

结果应该是"katie,sarah"; (迈克被删除)

有没有一个很好的Linq方式来做到这一点?

Ray*_* Lu 14

// as you may know, this is the right method to declare arrays       
string[] admins = {"aron", "mike", "bob"};
string[] users = {"mike", "katie", "sarah"};

// use "Except"
var exceptAdmins = users.Except( admins );
Run Code Online (Sandbox Code Playgroud)

  • 实际上,这也不对:`string [] admins = {"aron","mike","bob"}; ` (3认同)

Jus*_*ner 5

最简单的方法是使用IEnumerable<T>.Except:

var nonAdmins = users.Except(admins);
Run Code Online (Sandbox Code Playgroud)