我的列表为Users = new List<string>();
我有另一个列表,List<TestList>()
;
UsersList = new List<string>();
我需要将Users与TestList.Name的值进行比较。如果TestList.Name中的值存在于Users中,我必须不能将它添加到UsersList,否则,我必须将它添加到UsersList。
我如何使用Linq做到这一点?
答案 0 :(得分:10)
在我看来,你想要:
List<string> usersList = testList.Select(x = > x.Name)
.Except(users)
.ToList();
换句话说,“使用testList
中的所有用户名,除了 users
中的用户名,并将结果转换为List<string>
”。
假设你在usersList
中没有任何东西可以开始。如果usersList
已经存在且包含一些值,您可以使用:
usersList.AddRange(testList.Select(x = > x.Name).Except(users));
请注意,此不会考虑usersList
中的现有项目,因此您最终可能会重复。
答案 1 :(得分:0)
在你的名单上做一个循环 - 例如:
foreach (string s in MyList)
{
if (!MyList2.Contains(s))
{
// Do whatever ; add to the list
MyList2.Add(s);
}
}
..这就是我如何解释你的问题