0

我想知道是否有人知道写这个的好方法。我有一个键值对列表。键是一个简单的字符串,值是一个字符串列表。我正在尝试将其写入输出文件,如下所示:

        File.WriteAllLines(@"C:\Users\S\Downloads\output.txt",
            xEleAtt.Select(x => x.Key + " Val's: " + x.Value).ToArray());

但是我得到的输出(这有点像我认为会发生的)是这样的:

Queue0 Val 的:System.Collections.Generic.List`1[System.String]

Queue1 Val 的:System.Collections.Generic.List`1[System.String]

Queue2 Val 的:System.Collections.Generic.List`1[System.String]

有没有人知道如何使用我编写的方式使用 linq 打印列表的内容?

4

3 回答 3

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());
于 2013-09-29T12:55:59.990 回答
1

尝试这个:

File.WriteAllLines(@"C:\Users\S\Downloads\output.txt",
    from kvp in input
    select kvp.Key + ": " + string.Join(", ", kvp.Value));
于 2013-09-29T12:56:55.760 回答
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

于 2013-09-29T12:59:16.953 回答