我正在寻找使用 C# 通过循环的最后一次迭代做不同事情的基本语法
问问题
73 次
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 回答