Possible Duplicate:
Is there a built-in method to compare collections in C#?
Comparing two collections for equality
我有两个集合,我想检查它们中包含的值是否不相等。
SearchResultCollection Users1 = ds1.FindAll();
SearchResultCollection Users2 = ds2.FindAll();
接下来我使用 2 个 foreach 循环进行迭代,然后分配变量。
foreach (SearchResult users in Users1)
{
string ManagerID = users.Properties["OrgUnitManagerName"][0].ToString();
string subGroup = users.Properties["EmployeeSubGroup"][0].ToString();
string cn = users.Properties["cn"][0].ToString();
foreach (SearchResult user in Users2)
{
string uid = absaUser.Properties["uid"][0].ToString();
}
}
我想要做的是:检查 User1 中哪些用户不存在于 user2 中并打印出该列表。
if(cn != uid)
{
}
这似乎不起作用。 有什么想法吗?
最佳答案
- 检查它们是否具有相同数量的记录,如果不同则退出
- 执行
list1.Except(list2)
- 如果有任何结果,则退出
否则 - 成功,它们匹配
注意:这使用 LINQ 扩展方法 Except
,请参见此处:http://msdn.microsoft.com/en-us/library/bb300779.aspx 。简而言之,list1.Except(list2)
为您提供 list1
中的所有项目,但 list2
中的项目除外。
对象需要实现Equals
才能正确比较相等性。
关于c# - 检查两个集合是否相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7714649/