如何比较2个列表中的值

lea*_*ing 4 c# linq

我有一个清单 Users = new List<string>();

我有另一个名单,List<TestList>();

UsersList = new List<string>();
Run Code Online (Sandbox Code Playgroud)

我需要将Users与TestList.Name的值进行比较.如果TestList.Name中的值存在于Users中,我必须不能将它添加到UsersList,否则,我必须将它添加到UsersList.

我怎么能用Linq做到这一点?

Jon*_*eet 10

它看起来像你想要的:

List<string> usersList = testList.Select(x = > x.Name)
                                 .Except(users)
                                 .ToList();
Run Code Online (Sandbox Code Playgroud)

换句话说,"使用testList 除了那些用户的所有用户名users,并将结果转换为List<string>".

假设你没有任何东西usersList可以开始.如果usersList已经存在并包含一些值,您可以使用:

usersList.AddRange(testList.Select(x = > x.Name).Except(users));
Run Code Online (Sandbox Code Playgroud)

请注意,这不会考虑现有项目usersList,因此您最终可能会重复.