C# foreach循环中列表中的第一个或最后一个元素

C# foreach循环中列表中的第一个或最后一个元素,c#,list,foreach,C#,List,Foreach,我有一个列表,我想识别列表中的第一个或最后一个元素,这样我就可以识别与该项相关的不同功能 例如 如何定义List.CurrentItem?在这种情况下,for循环会更好吗?宁可利用 连接指定数组的元素或 集合,在每个元素或元素之间使用指定的分隔符 成员 这要简单得多 差不多 string s = string.Join(", ", new List<string> { "Foo", "Bar"

我有一个列表,我想识别列表中的第一个或最后一个元素,这样我就可以识别与该项相关的不同功能

例如

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

宁可利用

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

这要简单得多

差不多

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

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

这要简单得多

差不多

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

试着这样做:

string newString = "";

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

试着这样做:

string newString = "";

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

你可以像这样使用柜台

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

你可以像这样使用柜台

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

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

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

如果您的列表只有1个元素,会发生什么情况?这是一个非常特殊的情况,在使用上述示例之前必须进行预检查!如果您的列表只有1个元素,会发生什么情况?这是一个非常特殊的情况,在使用上述示例之前必须进行预检查!