当我使用字符串时,要求是第一,第二,第三,第四,第五这个工作正常但是当我使用foreach时它不起作用
List<string> stringList = new List<string>();
stringList.Add("first");
stringList.Add("second");
stringList.Add("third");
stringList.Add("fourth");
stringList.Add("fifth");
string result = string.Join(", ", stringList).TrimEnd(',', ' ');
Console.WriteLine(result);
foreach (var item in stringList)
{
string resultt = string.Join(", ", item).TrimEnd(',', ' ');
Console.WriteLine(resultt);
}
我必须使用foreach从字符串List中删除最后一个单词的逗号。
答案 0 :(得分:2)
foreach循环遍历列表中的每个项目,因此在您的代码中 resultt 将始终等于 item 。即。 resultt = item
我认为你正在尝试这样做:
var resultt = "";
foreach (var item in stringList)
{
resultt += item + ", ";
}
resultt = resultt.TrimEnd(',',' ');
Console.WriteLine(resultt);
如果使用StringBuilder连接大量字符串会更有效。
答案 1 :(得分:1)
如果您将列表视为[first] [,other] [,other] [,other] ...所以我们将逗号分组后面的元素,这变得很简单:
static String Join(string joiner, IEnumerable<String> list){
bool first = true;
StringBuilder sb = new StringBuilder();
foreach (s in list){
if(!first){
sb.Append(joiner);
}else{
first = false;
}
sb.Append(s);
}
return sb.ToString();
}
答案 2 :(得分:0)
加入列表时不需要Trim()。你必须这样做。
string mergedString = string.Join(",", stringList.ToArray());
字符串的开头和结尾都不会有逗号。