c# - 如何合并 Generic.Collection.List 和 Generic.Collection.Dictionary

标签 c# linq list dictionary lambda

我有一个 Generic.Collection.List 和 Generic.Collection.Dictionary 就像

List<String> MyList
Dictionary<String, List<String>> MyDictionary

我需要根据 MyList 中的整数过滤 MyDictionary 即如果 MyList 的项目在 值中MyDictionary,则该项目将添加到 MyFilteredDictionary 中。

Dictionary<String, List<String>> MyFilteredDictionary

现在我通过使用 `for-foreach 循环来做到这一点,比如

for (int l_nIndex = 0; l_nIndex < MyList.Count; l_nIndex++)
  {
    foreach (KeyValuePair<String, List<String>> l_objKeyValuePair in MyDictionary)
      {
         if (l_objKeyValuePair.Value.Contains(MyList[l_nIndex]) == true)
           {
             MyFilteredDictionary.Add(l_objKeyValuePair.Key, l_objKeyValuePair.Value);
             break;
            }
       }
  }

如何使用 `Lambda 表达式做同样的事情?

最佳答案

var res = MyDictionary.Where(kvp => MyList.Any(item => kvp.Value.Contains(item)))
                      .ToDictionary(kvp => kvp.Key, kvp => kvp.Value);

关于c# - 如何合并 Generic.Collection.List 和 Generic.Collection.Dictionary,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11775905/

相关文章:

c# - ASP.NET 预编译期间出现类型解析错误

c# - .NET 多维数组打印

linq 到 Entity Framework : use dictionary in query

python - 包含来自多个列表的数据的字典结构

java - 处理不同类型对象之间交互的设计模式

c# - 如果日期时间是另一个日期时间的 24 小时,则返回

c# - 如何使用 LINQ 组记录和使用 Distinct

linq - 动态构建 Linq 查询

python-2.7 - map(None, some_list) 对 Python 2.7 中的一个列表有什么用处吗?

python - 如何根据谓词将列表划分为更小列表的列表?