将代码列表集合写入c#中的字符串

时间:2010-10-19 08:57:27

标签: c# string collections coding-style

全部 尝试将列表集合字符串转换为一个行字符串时遇到问题。 但对于每个项目,我必须使用特定格式进行编辑。

实施例

List<string> items = new List<string>();
string result = string.Empty;

items.Add("First");
items.Add("Second");
items.Add("Last");

result = string.Join(",", items.ToArray());
Console.WriteLine(result); // Display: First,Second,Last

但我想转换成这样的东西:

[First],[Second],[Last]

或类似

--First-,--Second-,--Last-

我知道使用foreach for循环编写此代码的技巧很少。

但是它可以编写代码只需将列表集合中的所有项目更改为特定的模式字符串。

所以items集合字符串包含从“First”到“\ First /”,或“Last”到“''Last'”的内容。

方面

3 个答案:

答案 0 :(得分:10)

在使用Join之前,您似乎想要投影:

result = string.Join(",", items.Select(x => "[" + x + "]")
                               .ToArray());

我个人认为这比使用更复杂的分隔符执行连接更清楚。 感觉就像你实际上有逗号加[First][Second][Third]的项目 - 而不是First,{{ 1}}和SecondThird加入。

您的第二种形式同样容易实现:

],[

请注意,如果您使用的是.NET 4,则无需result = string.Join(",", items.Select(x => "--" + x + "-") .ToArray()); 调用,因为它引入了额外的重载以使ToArray更易于使用。

答案 1 :(得分:3)

为什么不

var result = "--" + string.Join("-,--", items.ToArray()) + "--";

var result = "[" + string.Join("],[", items.ToArray()) + "]";

答案 2 :(得分:2)

使用连接,然后根据需要在前面和后面添加字符:

result = "[" + string.Join("],[", items.ToArray()) + "]"; 

会帮你的

[First],[Second],[Last]