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