我将函数的返回类型设置为IEnumerable<Dictionary<string, object>>
,我需要获取键值对。
使用适当的密钥,我需要更改值。
我有一个解决方案,当返回类型是一个词典而不是IEnumerable<Dictionary<string, object>>
我终于需要修改后面的值,找到特定的密钥。
答案 0 :(得分:1)
以下解决方案可能是您所寻找的,但您必须根据您的具体情况确定哪一种更合适
给出
var myKey = "someKey";
假设您的词典列表包含您要查找的密钥,只需一次
var aDictionary = MyEnumerable.Single(x => x.ContainsKey(myKey));
aDictionary[myKey] = myNewValue;
如果
,将抛出InvalidOperationException假设您的词典列表可能包含或不包含您要查找的密钥,只需一次
var aDictionary = MyEnumerable.SingleOrDefault(x => x.ContainsKey(myKey));
if(aDictionary != null)
{
aDictionary[myKey] = myNewValue;
}
如果
,将抛出InvalidOperationException假设您的密钥可能出现多次
foreach (var aDictionary in MyEnumerable.Where(x => x.ContainsKey(myKey)))
{
aDictionary[myKey] = myNewValue;
}
<强>更新强>
您似乎可能会对类型IEnumerable<Dictionary<string, object>>
IEnumerable
是一个列表(针对此对话)
Dictionary
表示键和值的集合。
所以你拥有的是键和值的集合列表
答案 1 :(得分:0)
您可以遍历IEnumerable&gt;使用foreach句子: (这只是一个有助于说明的例子)
IEnumerable<Dictionary<string, object>> colectionDict;
foreach(var dict in colectionDict) //dict is an object of type Dictionary<string,object>
此外,您可以使用变量类型Enumerator。
var enum = colectionDict.GetEnumerator();
while(enum.Next){
var dict = enum.Current; // dict is an object of type Dictionary<string,object>
}