C# 在c中将代码列表集合写入字符串#
大家好 尝试将列表集合字符串转换为单行字符串时出现问题。 但对于每个项目,我必须用特定的格式进行编辑 范例C# 在c中将代码列表集合写入字符串#,c#,string,collections,coding-style,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
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-
我知道使用foreach for循环编写此代码的技术很少
但它是否可以编写代码,只需将列表集合中的所有项更改为特定的模式字符串
因此,items集合字符串包含从“First”到“\First/”或“Last”到“Last”的类似内容
为什么不考虑
var result = "--" + string.Join("-,--", items.ToArray()) + "--";
或
使用“连接”,然后根据需要在前面和后面添加字符:
result = "[" + string.Join("],[", items.ToArray()) + "]";
我会帮你的
[First],[Second],[Last]
听起来您在使用“联接”之前需要投影:
result = string.Join(",", items.Select(x => "[" + x + "]")
.ToArray());
我个人认为这比使用更复杂的分隔符执行连接更清晰。感觉上你实际上是用逗号连接了[First]
、[Second]
和[Third]
的项目,而不是用连接的First
、Second
和Third
的项目
第二种形式同样容易实现:
result = string.Join(",", items.Select(x => "--" + x + "-")
.ToArray());
请注意,如果您使用.NET 4,您不需要调用ToArray
,因为它引入了额外的重载以使string.Join
更易于使用。请您重新表述这个问题。我已经读了几遍,但我仍然不确定问题出在哪里。您可以使用初始值设定项列表构建字符串集合(尽管它可能与您的场景不匹配):var items=new List(){“一”、“二”、“三”,};
。您也不必再转换为数组来使用string.Join
。它现在有一个带有此签名的覆盖:公共静态字符串连接(字符串分隔符,IEnumerable值)是的,这是我想要的代码,写起来更优雅。谢谢。
result = string.Join(",", items.Select(x => "[" + x + "]")
.ToArray());
result = string.Join(",", items.Select(x => "--" + x + "-")
.ToArray());