【发布时间】:2016-09-10 03:56:48
【问题描述】:
对于演示代码,我有一个 for 循环,它根据某些条件调用方法 LoopData。
在LoopData 方法中,我正在迭代一个列表List<Data>,这个方法一次又一次地调用各种条件,并且每次整个列表List<Data> 都在迭代。
问题是,如何从列表List<Data> 中跳过之前调用中已经处理的那些记录?
这是代码,
public class Data
{
public int Id { get; set; }
public int ItemId { get; set; }
}
class Program
{
static void Main(string[] args)
{
List<Data> data = new List<Data>
{
new Data { Id = 1, ItemId = 100 },
new Data { Id = 2, ItemId = 200 },
new Data { Id = 3, ItemId = 300 },
new Data { Id = 4, ItemId = 400 },
new Data { Id = 5, ItemId = 500 }
};
for(int i = 1; i <= 2; i++)
{
if (i == 1)
{
LoopData(data, 100, 300);
}
else
{
LoopData(data, 300, 500);
}
}
}
private static void LoopData(List<Data> data, int startItemId, int endItemId)
{
for(int i = 0; i < data.Count; i++)
{
if(data[i].ItemId >= startItemId && data[i].ItemId <= endItemId)
{
//
}
}
}
}
【问题讨论】: