知道foreach中的第一个和最后一个循环

时间:2014-09-10 21:56:31

标签: c#

有没有办法找出我在foreach的第一个也是最后一个循环?

foreach(string str in list){
  if(str.isFirst(list) == true){...} 
  if(str.isLast(list) == true){...} 
}

^像这样的东西?

5 个答案:

答案 0 :(得分:6)

for (int i = 0; i < list.Length; i++)
{
    if (i == 0) 
    { 
        // is first iteration 
    }
    if (i >= list.Length - 1) 
    { 
        // is last iteration 
    }
}

答案 1 :(得分:1)

使用计数器

int i = 0;
foreach(string str in list)
{
   if(i == 0) { /* first */ }
   if(i == list.Count - 1)  { /* last */ }
   i++;
}

答案 2 :(得分:1)

检查您是处理第一项还是最后一项的最简单方法是以下代码:

void Process(string[] strings)
{
    for (int i = 0; i < strings.Length; i++)
    {
        var s = strings[i];

        bool isFirst = i == 0;
        bool isLast = i == strings.Length - 1;
    }
}

答案 3 :(得分:0)

替代方式

foreach(var kv in list.ToDictionary(k => list.IndexOf(k), v => v))
{
    if (kv.Key == 0) Console.WriteLine("First is {0}", kv.Value);
    if (kv.Key == list.Count - 1) Console.WriteLine("Last is {0}", kv.Value);
}

最好的选择是for()循环

答案 4 :(得分:-1)

bool first = true;    
foreach(string str in list)
{
  if(first) 
  {
      //do something
      first = false;
  } 
}