2017-09-27 80 views
-2
位置

從這個例子:https://stackoverflow.com/a/27034916/1312879C#字典打印列表值由

我有這樣的字典

Dictionary<int, List<string>> fileList = new Dictionary<int, List<string>>(); 

的例子打印 「託菲霍」, 「Frigy」, 「lijo」, 「禮記」 ,「vimal」,「vilma」

如何打印「fijo」,「lijo」,「vimal」,「Frigy」,「liji」,「vilma」,我的意思是每個[0]列表,[1]位置等

+0

你的數據例子不是很清楚,我只能猜測你最後一句的意思。無論如何,你到目前爲止嘗試過哪些方法無效?它如何失敗?如果名單有不同的長度,會發生什麼? –

回答

1

You ca n個代碼非常像你說的:

foreach (var kvp in fileList) 
{ 
    Console.WriteLine (kvp.Value[0]); 
} 
foreach (var kvp in fileList) 
{ 
    Console.WriteLine (kvp.Value[1]); 
} 

,如果有內部列表更多的項目,你可能想使用一個循環,假設它們都具有相同的長度:

for (int i = 0; i < fileList.First().Value.Count; i++) 
{ 
    foreach (var kvp in fileList) 
    { 
     Console.WriteLine (kvp.Value[i]); 
    } 
} 
0

在這裏你去:

for(int i=0; i < fileList.Values.Max(v=> v==null ? 0 : v.Length); i++) 
{ 
    foreach(var keyValuePair in fileList) 
    { 
     if(kvp.Value == null || i >= kvp.Value.Length) 
      continue; 
     Console.WriteLine(kvp.Value[i]); 
    } 
} 

不過,我不知道後面當它是基於行(反之亦然)創建柱狀方式遍歷數據結構的原因。使用不同的數據結構可以更好地服務於所有用例。