我有一个字典列表List<Dictionary<string,object>>,现在我想对这个列表字典里的key进行循环遍历,与另一表某列值进行对比匹配。代码如下:
foreach (Dictionary<string, object> dic in list) { foreach (DataRow row in dt.Rows) { if(dic.key.Equals(row["x"].ToString()) { } } }
现在dic.key这里我应该如何去取呢,还是说我这里有问题,必须在用个KeyValuePair<string,object>?
你这里key已经不需要取啦,row["x"].ToString()就可以是你的key。
如果是要用key取value的话:
Dictionary取值: foreach (var kv in dic) { // key:kv.Key // value: kv.Value }
or:
object value ; dic.TryGetValue(row["x"].ToString(), out value);
or
dic[row["x"].ToString()]
字典的key值不一定都与row["x"]的值一样的
不过我已经搞定了
字典里的数据类似这样:
key:xx:xx,value:x
key:xx:xx,value:y
key:xx:xx,value:z
object value; dic.TryGetValue("key", out value);
像上面那样去取就可以了,和你的有一个类似。。还有一种方式是用dic.ElementAt(index).Key的方式