我有一个 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/