有没有办法找出我在foreach的第一个也是最后一个循环?
foreach(string str in list){
if(str.isFirst(list) == true){...}
if(str.isLast(list) == true){...}
}
^像这样的东西?
答案 0 :(得分:6)
for (int i = 0; i < list.Length; i++)
{
if (i == 0)
{
// is first iteration
}
if (i >= list.Length - 1)
{
// is last iteration
}
}
答案 1 :(得分:1)
使用计数器
int i = 0;
foreach(string str in list)
{
if(i == 0) { /* first */ }
if(i == list.Count - 1) { /* last */ }
i++;
}
答案 2 :(得分:1)
检查您是处理第一项还是最后一项的最简单方法是以下代码:
void Process(string[] strings)
{
for (int i = 0; i < strings.Length; i++)
{
var s = strings[i];
bool isFirst = i == 0;
bool isLast = i == strings.Length - 1;
}
}
答案 3 :(得分:0)
替代方式
foreach(var kv in list.ToDictionary(k => list.IndexOf(k), v => v))
{
if (kv.Key == 0) Console.WriteLine("First is {0}", kv.Value);
if (kv.Key == list.Count - 1) Console.WriteLine("Last is {0}", kv.Value);
}
最好的选择是for()循环
答案 4 :(得分:-1)
bool first = true;
foreach(string str in list)
{
if(first)
{
//do something
first = false;
}
}