写入列表<keyvaluepair <string,list <string =“”>&gt;&gt;到文本文件?</keyvaluepair <string,>

时间:2013-09-29 12:53:30

标签: 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: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打印列表内容?

3 个答案:

答案 0 :(得分:2)

您可以使用String.JoinList<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

的答案