-3

我正在寻找使用 C# 通过循环的最后一次迭代做不同事情的基本语法

4

4 回答 4

4

它没有特殊的语法。

这只是一种可能的方法:

for (int i = 0; i < n; ++i)
{
    if (i == n - 1)
    {
        // Something special that must be done before the last iteration
    }

    // Normal iteration
}
于 2012-12-05T14:16:18.590 回答
2

什么样的循环,什么样的集合?

假设它具有以下Count属性ICollection

for(int i=0; i < col.Count; i++)
{
    if(i == col.Count-1)
    {
        // ...
    }
}

对于所有其他您可以使用Enumerable.Count执行查询并枚举它们以确定计数的方法(如果类型可转换为ICollection<T>它将使用该Count属性):

int index = 0;
int count = col.Count();
foreach(var x in col)
{
    if(index++ == count - 1)
    {
        // ...
    }
}
于 2012-12-05T14:17:19.623 回答
0
        var collection = new[] { "1", "2", "3" };
        for (var i = collection.Length - 2; i > -1; i--)
        {
            // do something with
            var element = collection[i];
        }

        // now do something with
        var last = collection.Last();
于 2012-12-05T14:19:13.137 回答
0

一般而言,对于 的任何序列T

bool waitingForOne = true;
T last = default(T);
foreach (T t in MySequenceOfT) // or for over whole collection or while...
{
    if (!waitingForOne)
        doSomethingWith(last);
    else
        waitingForOne = false;
    last = t;        
}
if (!waitingForOne)
    doSomethingElseWith(last);

这个想法是,在每次迭代中,您都保留当前项目并对前一个项目(如果有的话)做一些事情。最后,您对最后一项执行其他操作。

于 2012-12-05T14:17:45.053 回答