从此示例中:https://stackoverflow.com/a/27034916/1312879
我有这种字典
Dictionary<int, List<string>> fileList = new Dictionary<int, List<string>>();
示例打印&#34; fijo&#34;,&#34; Frigy&#34;,&#34; lijo&#34;,&#34; liji&#34;,&#34; vimal&#34; ,&#34; vilma&#34;
我如何打印&#34; fijo&#34;,&#34; lijo&#34;,&#34; vimal&#34;,&#34; Frigy&#34;,&#34; liji&#34 ;,&#34; vilma&#34;,我的意思是每个列表的所有[0]位置,[1]位置等等
答案 0 :(得分:1)
你可以像你说的那样编写代码:
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]);
}
}
答案 1 :(得分: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]);
}
}
但是,我想知道在基于行创建时以柱状方式遍历数据结构的原因(反之亦然)。您可能最好使用可以为所有用例提供服务的不同数据结构。