代码:
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);
期望输出=
(1),(2),(100),(3),(4),(101),(98),(99)
代码有效。我想知道这是实现结果的最佳方式。有没有更好的方法来达到预期的效果?
有没有办法不使用foreach
循环?
答案 0 :(得分:8)
这样就可以了。代码首先拆分字符串并使用constexpr Q(int i = 0, int f = 0) : integer(i),fractional(f) {}
格式化为所需的输出。
linq
控制台输出
var strToPrint = string.Join(",", testquestions.Split(',')
.Select(s => string.Format(@"({0})", s)));
您可以在此处查看实时小提琴 - https://dotnetfiddle.net/4zBqMf
修改:
正如@paparazzo所建议的那样,您可以使用字符串插值将语法编写为
Console.WriteLine(string.Join(",", testquestions.Split(',')
.Select(s => string.Format(@"({0})", s))));
答案 1 :(得分:1)
以下是使用替换的其他一些方法。
string testquestions = "1,2,100,3,4,101,98,99";
string result = new StringBuilder("(" + testquestions + ")").Replace(",", "),(").ToString();
string result1 = "(" + testquestions.Replace(",", "),(") + ")";
string result2 = "(" + new Regex(",").Replace(testquestions, "),(") + ")";