列表中的第一个或最后一个元素<>在foreach循环中

时间:2014-04-17 04:30:32

标签: c# list foreach

我有一个List<string>,我想识别列表中的第一个或最后一个元素,这样我就可以识别出与该项目不同的函数。

例如

foreach (string s in List)
{
    if (List.CurrentItem == (List.Count - 1))
    {
        string newString += s;
    }
    else
    {
        newString += s + ", ";
    }
}

我如何定义List.CurrentItem?在这种情况下,for循环会更好吗?

4 个答案:

答案 0 :(得分:8)

而是使用String.Join

  

连接指定数组的元素或a的成员   集合,使用每个元素之间的指定分隔符或   构件。

这简单得多。

这样的东西
        string s = string.Join(", ", new List<string>
        {
            "Foo",
            "Bar"
        });

答案 1 :(得分:1)

您可以使用基于linq的解决方案

示例:

var list = new List<String>();
list.Add("A");
list.Add("B");
list.Add("C");

String first = list.First();
String last = list.Last();
List<String> middle_elements = list.Skip(1).Take(list.Count - 2).ToList();

答案 2 :(得分:0)

尝试这样的事情:

string newString = "";

foreach (string s in List)
{
  if( newString != "" )
    newString += ", " + s;
  else
    newString += s;
}

答案 3 :(得分:0)

你可以像这样使用计数器

         int counter = 0 ;
         foreach (string s in List)
         {
               if (counter == 0) // this is the first element
                {
                  string newString += s;
                }
               else if(counter == List.Count() - 1) // last item
                {
                newString += s + ", ";
                }else{
                 // in between
               }
                counter++;
       }