2014-01-07 23 views
0

我有一個列表,我想在C#中使用IN語句中的成員。使用string.Join 在列表的末尾插入一個不需要的逗號。我該怎麼辦?在c#中的列表中創建逗號分隔列表而不終止逗號

string sql = string.Format(@"SELECT I.ItemId FROM POS.Item I WHERE 
I.Code IN ({0})", string.Join(",", code.ToArray())); 
+3

顯示代碼變量中的數據。那不是加入的行爲。連接沒有放,最後 –

+0

'String.Join'不在結果的末尾添加'separator'。你的代碼必須有不同的錯誤。 – MarcinJuraszek

+0

你有一個空字符串(或者'.ToString's) - 或'null' - 在'code'中? –

回答

2

您可以在code中有空字符串或null。

看看這個:

string joined = string.Join(",", new string[] { "asdf", "qwer", "" }); 
Console.WriteLine(joined); 

string joined = string.Join(",", new string[] { "asdf", "qwer", null }); 
Console.WriteLine(joined); 

均可以得到:

asdf,qwer, 
0

必須有您的列表爲空字符串,這就是爲什麼它在增加了額外的逗號字符串結尾,否則string.Join永遠不會添加額外的逗號。如果是這種情況,那麼您應該刪除額外的逗號TrimEnd()功能類似於

string sql = string.Format(@"SELECT I.ItemId FROM POS.Item I WHERE 
I.Code IN ({0})", string.Join(",", code.ToArray()).TrimEnd(','));