2013-10-15 80 views
0

我有一個字符串列表,其中包含x個項目。我想創建一個單一的字符串和項目應逗號分隔的是這樣的:列表<string>以逗號分隔的字符串和最後一個沒有逗號的值

string result = val1, val2, val3, ... valx 

,但我不希望有最後的值,後跟逗號+空格

這是我試過並且結果在字符串的末尾添加逗號+空格。

string result = string.Join(", ", myList.Select(x => x.ToString())); 

的結果是這樣的:

string result = val1, val2, val3, ... valx,[space] 
+3

爲什麼你使用'String.ToString()'? –

+1

你能確認物品x是白色空間嗎?否則,你最終不會得到','。 –

+0

爲什麼使用'Select'? –

回答

5
string result = string.Join(", ", myList.Select(x => x.ToString())).TrimEnd(',',' '); 

注意:看起來像你的輸入myListList of string所以你不需要ToString(),只是不喜歡它這個:

string result = string.Join(", ", myList).TrimEnd(',',' '); 
0
string result = string.Join(", ", myList.Where(x=>x.Trim() != String.Empty).Select(x => x.ToString())); 
+0

如果'x'是一個字符串,那麼'.Select(x => x.ToString()))'是不必要的。如果'x'不是一個字符串,那麼'x.Trim()'可能不會編譯。 –

1

然後你在列表的最後有一個空格。你真的想從逗號分隔的lis中刪除它嗎?這意味着您的物品數量少於清單的物品數量。

string result = string.Join(", ", myList.Where(x => !string.IsNullOrWhiteSpace(x))); 
+0

你忘了'ToArray'。 'String.Join'不帶'IEnumerable ',只有'string []'。 –

+0

@KonradMorawski:它從.NET 4開始。 http://msdn.microsoft.com/en-us/library/dd992421(v=vs.100).aspx –

+0

哦,我沒有意識到這一點。我立場糾正,謝謝。 –

0

請檢查您的myList爲whitepsace

不含空格

 List<string> myList = new List<string>{"1", "2", "3", "4", "5", "6"}; 
     string result = string.Join(", ", myList.ToArray()); 
     Console.WriteLine(result); 

輸出: 1, 2, 3, 4, 5, 6

有空白

 List<string> myListSpace = new List<string> { "1", "2", "3", "4", "5", "6"," " }; 
     string resultSpace = string.Join(", ", myListSpace.ToArray()); 
     Console.WriteLine(resultSpace); 

輸出: 1, 2, 3, 4, 5, 6,[space]

解決問題的方法:

string result = string.Join(", ", myListSpace.Where(s => !string.IsNullOrWhiteSpace(s)).ToArray());

相關問題