-3

C#を使用して、ループの最後の繰り返しで何か違うことをする基本的な構文を探しています

4

4 に答える 4

4

特別な構文はありません。

これを行うための1つの可能な方法は次のとおりです。

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 に答える