【问题标题】:Compare values in Dictionary with Another List Items将字典中的值与另一个列表项进行比较
【发布时间】:2015-04-15 04:41:47
【问题描述】:

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

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

如果它们不相等,则应将该键添加到另一个列表“FAILEDLIST”

任何帮助将不胜感激。

谢谢!

【问题讨论】:

标签: c# list dictionary compare


【解决方案1】:

我假设您所说的If they are not equalIf 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();
    

【讨论】:

  • 很抱歉,我的查询不清楚。我的问题有点不同 Dictionary> MatsrDataList = new Dictionary>();每个键都会有一个值列表,我必须检查所有值是否与部门列表项相同
  • 您可以再次遍历字典中每个键的列表,并检查列表中的该项目是否存在于另一个列表中。请参阅编辑后的答案。
猜你喜欢
  • 2013-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多