在C#中将代码列表集合转换为字符串

4

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

例如:

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 循环编写此代码的技巧。

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

因此,项目集合字符串包含从“First”到“\ First /”,或从“Last”到“''Last'”。

敬礼


你能否请重新表述问题?我已经读了几遍,但仍然不确定问题所在。 - Neowizard
1
你可以使用初始化列表构建字符串集合(尽管它可能不符合你的情况):var items = new List<string>() { "One", "Two", "Three", };。现在,你也不必再将其转换为数组才能使用 string.Join 了。它现在有一个带有此签名的重载:public static string Join(string separator, IEnumerable<string> values); - Merlyn Morgan-Graham
3个回答

10

听起来你想在使用Join之前进行投影:

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

在个人看来,这比使用更复杂的分隔符进行连接更清晰。它 感觉 就像你实际上拥有用逗号连接的[First][Second][Third]项目-而不是用],[连接的FirstSecondThird项目。

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

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

请注意,如果您使用的是.NET 4,那么您不需要调用ToArray,因为它引入了额外的重载来使string.Join更易于使用。


是的,这就是我在寻找的代码,写起来更加优雅。谢谢。 - Edy Cu

3
为什么不呢?
var result = "--" + string.Join("-,--", items.ToArray()) + "--";

或者

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

2
使用join函数,然后根据需要在前面和后面添加字符:
result = "[" + string.Join("],[", items.ToArray()) + "]"; 

将让您

[First],[Second],[Last]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接