列出<int>到sql"in"查询

hal*_*000 4 c# sql linq

我需要一个列表和Linq它,以便我出来一些适合sql"in"的东西.这就是我现在使用的.是否有更清洁的Linq方式来获得这个"(333,333,54445,56667)"

List<int> vendorIds;
string snipet = "";
for (int i = 0; i < vendorIds.Count; i++)
{
    snipet += (i > 0) ? "," + vendorIds[i].ToString() : vendorIds[i].ToString();
}
Run Code Online (Sandbox Code Playgroud)

就是想.

usr*_*usr 7

在.NET <= 3.5

string.Join(",", vendorIds.Select(x => x.ToString()).ToArray())
Run Code Online (Sandbox Code Playgroud)

在.NET> = 4

string.Join(",", vendorIds)
Run Code Online (Sandbox Code Playgroud)

我更愿意为自己写一个方法:

string Concat(this IEnumerable<string> items) { ... }
Run Code Online (Sandbox Code Playgroud)

  • 实际上你可以把它写成:`string.Join(",",vendorIds)` (3认同)