簡體   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