C#を使用して、ループの最後の繰り返しで何か違うことをする基本的な構文を探しています
質問する
73 次
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 に答える