使用foreach中的String列表从最后一个单词中删除逗号

时间:2015-09-28 02:31:51

标签: c#-4.0

当我使用字符串时,要求是第一,第二,第三,第四,第五这个工作正常但是当我使用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中删除最后一个单词的逗号。

3 个答案:

答案 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());

字符串的开头和结尾都不会有逗号。