如何从查询C#中删除最后一个逗号

Roc*_*cky 9 c# asp.net

我正在做如下的事情..

querybuilder = ("SELECT Type, Text FROM [Element] WHERE Id IN( ");
foreach (var item in CaseIdList)
{
   querybuilder += item + ",";
}
querybuilder += ")";
Run Code Online (Sandbox Code Playgroud)

在最后一个insdie关闭括号我得到一个逗号.如何删除.

Hab*_*bib 19

用于TrimEnd(',');从字符串中删除最后一个逗号,string.TrimEnd

使用foreach循环后:

querbuilder = querybuilder.TrimEnd(',');
Run Code Online (Sandbox Code Playgroud)

您可以使用StringBuilder类,而不是连接字符串.

  • 或者你可以简单地做:`querybuilder = querybuilder +(String.Join(",",CaseIdList))+")";` (3认同)

Jon*_*eet 6

首先,我试图避免直接包含值本身.尽可能使用参数 - 它对于IN(x, y, z)样式参数不太简单,但您可以使用表值参数或只是动态创建参数列表(例如IN(@p0, @p1, @p2))

其次,我避免在循环中使用字符串连接 - StringBuilder如果你真的必须循环使用.

第三,我string.Join用来避免必须循环:

string commaSeparated = string.Join(", ", values);
Run Code Online (Sandbox Code Playgroud)


Tom*_*tom 5

而不是foreach循环你可以使用string.Join方法.看看这个