2012-05-14 30 views
4

我需要一個列表和Linq它,這樣我才能出來一些適合sql的「in」。這是我現在使用的。有沒有更清潔的Linq方式得到這個"(333,333,54445,56667)"列表<int>到一個sql「in」查詢

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

只是想知道。

+0

感謝在我原來的問題中修復......當我受到壓力時我變得堅強;) – hal9000

回答

7

在.NET < = 3.5

string.Join(",", vendorIds.Select(x => x.ToString()).ToArray()) 

在.NET> = 4

string.Join(",", vendorIds) 

我更喜歡自己寫爲該等的方法:

string Concat(this IEnumerable<string> items) { ... } 
+1

+1 string.Join也需要'IEnumerable '所以你不需要'.ToArray()' – Magnus

+1

這在.NET> = 4中似乎是新的。它是一個數組參數(就像每個BCL-API基於數組一樣)。 – usr

+3

其實你可以把它寫成:'string.Join(「,」,vendorIds)' – Magnus