检查foreach中的最后一个元素

时间:2011-06-01 10:05:56

标签: c# .net

我有这段代码:

foreach (Object element in elements.under)
    {
        ...
    }

我想在我进入最后一个周期时打印一些。 我该怎么办?

4 个答案:

答案 0 :(得分:6)

您需要跟踪计数器,然后检查最后一个元素 -

int i = 1;
foreach (Object element in elements.under)
{
    if (i == elements.under.Count) //Use count or length as supported by your collection
    { 
      //last element 
    }
    else 
    { i++; }
}

答案 1 :(得分:5)

foreach (Object element in elements.under)
    {
        if (element  == elements.under.Last())  
        {
            //Print Code
        }
        else
        {
            //Do other thing here
        }
    }

答案 2 :(得分:3)

这样的答案可以解决你想要的问题

How do you find the last loop in a For Each (VB.NET)?

也检查这个库 Enumerating with extra info in the Miscellaneous Utility Library

foreach (SmartEnumerable<string>.Entry entry in
                 new SmartEnumerable<string>(list))
        {
            Console.WriteLine ("{0,-7} {1} ({2}) {3}",
                               entry.IsLast  ? "Last ->" : "",
                               entry.Value,
                               entry.Index,
                               entry.IsFirst ? "<- First" : "");
        }

基于以上库链接的代码

答案 3 :(得分:0)

您可以尝试以下简单代码

                foreach (object obj in allObjects)
                { 
                    if (obj  != allObjects.Last())
                    {
                         // Do some cool stufff..
                    } else
                    {
                         // Go Normal Way
                    }
                }