我有一个项目列表,我需要循环它,以便首先收集每个n(例如3)项目,然后在第n项目处立即处理.
我正在做以下事情:
List<MyObject> smallList = new List<MyObject>();
for (int i = 0; i < largeList.Count; i++)
{
smallList.Add(largeList[i]);
if (i % 3 == 0 || i >= largeList.Count - 3)
{
//Do somehting with those n items...
}
smallList.Clear();
}
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来做到这一点?
您也可以使用LINQ执行此操作:
var largeList = new List<int>(new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 });
for (int i = 0; i < largeList.Count; i += 3)
{
var items = largeList.Skip(i).Take(3).ToList();
// do stuff with your 3 (or less items)
}
Run Code Online (Sandbox Code Playgroud)