2017-09-27 75 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]); 
    } 
} 

不过,我不知道后面当它是基于行(反之亦然)创建柱状方式遍历数据结构的原因。使用不同的数据结构可以更好地服务于所有用例。