将Dictionary中的值与另一个列表项进行比较

时间:2015-04-15 04:41:47

标签: c# list dictionary compare

我这里有问题。我已经实现了一个字典MASTERDATALIST和一个包含特定项目集的列表DEPARTMENTLIST。

我需要的是将MASTERDATALIST中每个键的值与DEPARTMENTLIST的项进行比较。

如果它们不相等,那么该密钥应该被添加到另一个列表中" FAILEDLIST"

任何帮助将不胜感激。

谢谢!

1 个答案:

答案 0 :(得分:0)

我假设您If they are not equal的意思是If the key is not found in the list

您需要做的是:

  • 遍历MasterDataList中的项目
  • 循环遍历字典中每个项目的值
  • 检查DepartmentList是否包含此项目
  • 如果没有,请将项目添加到FailedList

        MasterDataList.Add("key1", new List<string>() { "list1_item1", "list1_item2" });
        MasterDataList.Add("key2", new List<string>() { "list2_item1", "list2_item2" });
        MasterDataList.Add("key3", new List<string>() { "list3_item1", "list3_item2" });
    
        DepartmentList.Add("list1_item1");
        DepartmentList.Add("list1_item2");
        DepartmentList.Add("list2_item1");
        DepartmentList.Add("list2_item2");
    
        foreach (KeyValuePair<string, List<string>> item in MasterDataList)
        {
            foreach (var listItem in item.Value)
            {
                if (!DepartmentList.Contains(listItem))
                    FailedList.Add(listItem);
            }
    
        }
    
        foreach (var item in FailedList)
        {
            Console.WriteLine(item);
        }
    
        Console.ReadLine();