c# - 检查两个集合是否相等

标签 c# collections foreach

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)
  {
  }

这似乎不起作用。 有什么想法吗?

最佳答案

  1. 检查它们是否具有相同数量的记录,如果不同则退出
  2. 执行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/

相关文章:

php - 使用 for 循环将数组插入 SQL

c# - 将 Visual Studio 2008 升级到 2013,将 .NET 3.5 升级到 4.5.1

c# - 在哪里放置带有 API key 的 JSON 文件以进行私有(private)访问

java - 同步外部对HashMap的访问

java - Java 中的 Collection 和 Set 接口(interface)有什么区别?

java - 如何用 Java 的 for-each 循环填充数组?

javascript - javascript forEach 循环可能出现奇怪的输出

c# - AutoFixture 使用正则表达式规则创建属性

c# - 无法以 C# windows 形式连接到任何指定的 MySQL 主机

java - 是否可以将 Guava 的 ForwardingListIterator 与 PeekingIterator 结合使用?