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

本文关键字:gt foreach 循环 lt 元素 第一个 最后一个 列表 | 更新日期: 2023-09-27 17:58:39

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

例如。

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

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

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

使用String.Join

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

它要简单得多。

类似的东西

        string s = string.Join(", ", new List<string>
        {
            "Foo",
            "Bar"
        });

您可以使用基于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();

您可以使用类似的计数器

         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++;
       }

试试这样的东西:

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