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

Cod*_*ody 2 c# dictionary compare list visual-studio-2010

对于我正在编写的一些代码,我有一个方法可以检查新对象是否具有与所有现有对象相似的属性.

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

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

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

那么,有两个问题:

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

Jef*_*eff 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);
Run Code Online (Sandbox Code Playgroud)