比较List <int>的内容以查找匹配项</int>

时间:2011-08-19 17:26:49

标签: c# visual-studio-2010 list dictionary compare

对于我正在编写的一些代码,我有一个方法可以检查新对象的所有现有对象的类似属性。

此方法返回Dictionary<int, List<int>>。它们的键是唯一的对象ID,List包含与新对象类似的属性。 (Constant.Name,Constant.StartDt等)。

现在,有几种不同类型的匹配不会发生。我需要一种方法来比较匹配的各种组合与这些列表中的内容,我需要能够知道匹配了哪个匹配。

因此,我考虑为每个匹配创建一个List,并将每个列表与返回的属性列表进行比较。但是,我知道我之前在Java中做过类似的事情并且它有一个缺陷 - 它与订单相匹配......我只需要知道每个列表是否包含这些项目。

所以,有两个问题:

  1. 这是找到比赛的最佳方式吗?
  2. 如果是这样,您建议的方法是什么?循环通过他们?或者C#内置了什么内容我不知道?

1 个答案:

答案 0 :(得分:9)

您可以使用LINQ Intersect方法:

http://msdn.microsoft.com/en-us/library/system.linq.enumerable.intersect.aspx

        int[] id1 = { 44, 26, 92, 30, 71, 38 };
        int[] id2 = { 39, 59, 83, 47, 26, 4, 30 };

        IEnumerable<int> both = id1.Intersect(id2);

        foreach (int id in both)
            Console.WriteLine(id);