C# foreach在C语言中的代码优化#

C# foreach在C语言中的代码优化#,c#,C#,代码: 期望输出= string testquestions = "1,2,100,3,4,101,98,99"; string[] qidarray = testquestions.Split(','); StringBuilder sb = new StringBuilder(); foreach (string s in qidarray) { sb.Append(String.Format(@"({0}),",s)); } string output= sb.ToStrin

代码:

期望输出=

string testquestions = "1,2,100,3,4,101,98,99";
string[] qidarray = testquestions.Split(',');

StringBuilder sb = new StringBuilder();

foreach (string s in qidarray)
{
    sb.Append(String.Format(@"({0}),",s));
}

string output= sb.ToString().Substring(0, sb.ToString().Length - 1);
代码是有效的。我想知道这是实现结果的最好方式吗。有没有更好的方法来达到预期的效果


有没有办法不使用
foreach
循环?

这样就可以了。代码首先拆分字符串,并使用
linq
,格式化为所需的输出

(1),(2),(100),(3),(4),(101),(98),(99)
控制台输出

var strToPrint = string.Join(",", testquestions.Split(',')
                       .Select(s => string.Format(@"({0})", s)));
你可以在这里查看现场小提琴-

编辑:

正如@papazzo所建议的,您可以使用字符串插值将语法编写为

Console.WriteLine(string.Join(",", testquestions.Split(',')
                        .Select(s => string.Format(@"({0})", s))));

现场小提琴-

这样就可以了。代码首先拆分字符串,并使用
linq
,格式化为所需的输出

(1),(2),(100),(3),(4),(101),(98),(99)
控制台输出

var strToPrint = string.Join(",", testquestions.Split(',')
                       .Select(s => string.Format(@"({0})", s)));
你可以在这里查看现场小提琴-

编辑:

正如@papazzo所建议的,您可以使用字符串插值将语法编写为

Console.WriteLine(string.Join(",", testquestions.Split(',')
                        .Select(s => string.Format(@"({0})", s))));

Live fiddle-

以下是使用Replace的一些其他方法

var strToPrint = string.Join(",", testquestions.Split(',').Select(s => $"({s})"));

下面是使用Replace的一些其他方法

var strToPrint = string.Join(",", testquestions.Split(',').Select(s => $"({s})"));

使用String.Join()这应该更适合。使用String.Join()这应该更适合。太棒了。成功了。只有一行代码。“这就是我要找的,$”({s})“可能更干净。”狗仔队同意。添加到我的答案中。@user1672994您应该使用真名:
“字符串插值”
,而不是“字符串格式短符号”@maccettura-Done.fantastic。成功了。只有一行代码。“这就是我要找的,$”({s})“可能更干净。”狗仔队同意。添加到我的答案中。@user1672994您应该使用真名:
“字符串插值”
,而不是“字符串格式短符号”@maccettura-Done.perfect and simplepect and simple