我想知道是否有人知道写这篇文章的好方法。我有一个键值对列表。键是一个简单的字符串,值是一个字符串列表。我正在尝试将其写入输出文件,如下所示:
File.WriteAllLines(@"C:\Users\S\Downloads\output.txt",
xEleAtt.Select(x => x.Key + " Val's: " + x.Value).ToArray());
然而,我得到的输出(这是我认为会发生的事情)是:
Queue0 Val's:System.Collections.Generic.List`1 [System.String]
Queue1 Val's:System.Collections.Generic.List`1 [System.String]
Queue2 Val's:System.Collections.Generic.List`1 [System.String]
有没有人知道如何使用以我编写的方式编写的linq打印列表内容?
答案 0 :(得分:2)
您可以使用String.Join
将List<string>
连接到具有给定分隔符的单个string
:
File.WriteAllLines(@"C:\Users\S\Downloads\output.txt",
xEleAtt.Select(x => x.Key + " Val's: " +
string.Join(",", x.Value.ToArray()).ToArray());
答案 1 :(得分:1)
试试这个:
File.WriteAllLines(@"C:\Users\S\Downloads\output.txt",
from kvp in input
select kvp.Key + ": " + string.Join(", ", kvp.Value));
答案 2 :(得分:0)
File.WriteAllLines(@"C:\Users\S\Downloads\output.txt",
xEleAlt.SelectMany(x=> x.Value, (x,y)=> x.Key + " Val's: " + y).ToArray());
//Result
Queue0 ....
Queue0 ....
......
Queue1 ....
Queue1 ....
....
注意:我不确定您是否要加入List<string>
中的所有字符串来为每个条目创建值。如果您愿意,请参阅Douglas