繁体   English   中英

C#从字典获取值 <string, List<object> &gt;

[英]C# getting values from Dictionary<string, List<object>>

我有一个关于如何从我的Dictionary<string, List<object>>获取值的问题,我尝试了所有在google中找到的示例,但仍然无法获得可读的值.....

所以,这是代码:

List<object> listValues = new List<object>();
listValues.Add(risk);
listValues.Add(validFrom);
listValues.Add(effectiveDate);

Dictionary<string, List<object>> dic = new Dictionary<string, List<object>>();
dic.Add(nameOfInsuredObject, listValues);

foreach (object value in dic.Values)
{
  System.Console.WriteLine(value);
}

我可以从字典中获取密钥,但是有了价值,我现在就被困住了。...这是此代码的结果:

Key => testInsObj
Values => System.Collections.Generic.List`1[System.Object]

那么有人可以帮我吗? 我是C#的新手,所以对其他人来说这也许是个简单的问题。

对于新的C#用户来说,如何访问字典令人困惑。

在字典上执行foreach时,会得到KeyValuePair<TKey, TValue> 现在,此KeyValuePair<TKey, TValue>具有2个属性KeyValuePair.KeyKeyValuePair.Value ,表示存储在字典中的KeyValue

同样,您所用的ValueList<T> ,这意味着在其上执行Console.WriteLine不会打印整个List<T> (正如某些人所期望的那样),而只会打印一些参考字符串。 您将必须“遍历”列表以打印单个元素。 不用说,根据要对List<T>的元素执行的操作,可以使用LINQ或其他一些常见的C#习惯用法。

foreach (var value in dic) {
    Console.WriteLine(value.Key);
    foreach (var item in value.Value)
        Console.WriteLine(item);
}

看来您正在寻找以这种方式编写列表的值:

foreach (var value in dic.Values)
{
    value.ForEach(Console.WriteLine);
}

实际上,字典的每个元素都是<string, List<Object>> 因此,当您要将对中的Value部分写入控制台时,需要一个for循环来写入List<object>每个元素。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM