C# 写列表<;KeyValuePair<;字符串,列表<;字符串>&燃气轮机&燃气轮机;到文本文件?
我想知道是否有人知道写这篇文章的好方法。我有一个键值对列表。键是一个简单字符串,值是一个字符串列表。我试图将其写入输出文件,如下所示:C# 写列表<;KeyValuePair<;字符串,列表<;字符串>&燃气轮机&燃气轮机;到文本文件?,c#,linq,file,list,dictionary,C#,Linq,File,List,Dictionary,我想知道是否有人知道写这篇文章的好方法。我有一个键值对列表。键是一个简单字符串,值是一个字符串列表。我试图将其写入输出文件,如下所示: File.WriteAllLines(@"C:\Users\S\Downloads\output.txt", xEleAtt.Select(x => x.Key + " Val's: " + x.Value).ToArray()); 然而,我得到的结果(这是我认为会发生的)是: Queue0 Val's:Syste
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打印列表的内容吗?您可以使用指定的分隔符将列表
连接到单个字符串
:
File.WriteAllLines(@"C:\Users\S\Downloads\output.txt",
xEleAtt.Select(x => x.Key + " Val's: " +
string.Join(",", x.Value.ToArray()).ToArray());
您可以使用将您的列表
连接成一个带有给定分隔符的字符串
:
File.WriteAllLines(@"C:\Users\S\Downloads\output.txt",
xEleAtt.Select(x => x.Key + " Val's: " +
string.Join(",", x.Value.ToArray()).ToArray());
试试这个:
File.WriteAllLines(@"C:\Users\S\Downloads\output.txt",
from kvp in input
select kvp.Key + ": " + string.Join(", ", kvp.Value));
试试这个:
File.WriteAllLines(@"C:\Users\S\Downloads\output.txt",
from kvp in input
select kvp.Key + ": " + string.Join(", ", kvp.Value));
注意:我不确定是否要将列表中的所有字符串连接起来
以生成每个条目的值。如果需要,请参考道格拉斯的答案
注意:我不确定是否要将
列表中的所有字符串连接起来
以生成每个条目的值。如果您愿意,请参考道格拉斯的答案。如果您使用的是.NET 4.0或更高版本.Nice,则不需要调用ToArray
。我试试看。我知道在这种情况下会用逗号分隔,但如果我想用新行分隔它们,我可以用Environment.NewLine吗?@SuzanAydın:当然可以。只需将string.Join(“,”,…
替换为string.Join即可(Environment.NewLine,
。如果您希望在每行开头重复键的值,请使用King's Response.+1。如果您使用的是.NET 4.0或更高版本,ToArray
调用是不必要的。很好。我会尝试一下。我知道在这种情况下,它会用逗号分隔它们,但如果我愿意的话被新行隔开我可以使用Environment.NewLine吗?@SuzanAydın:当然可以。只要用string.Join(“,”,…
)替换string.Join(Environment.NewLine,…
)就可以了。如果你想在每行的开头重复键的值,请使用King的答案。