Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在c中将代码列表集合写入字符串#_C#_String_Collections_Coding Style - Fatal编程技术网

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());