我将列表分成块并按如下方式处理:
foreach (var partialist in breaklistinchunks(chunksize))
{
try
{
do something
}
catch
{
print error
}
}
public static class IEnumerableExtensions
{
public static IEnumerable<List<T>> BreakListinChunks<T>(this IEnumerable<T> sourceList, int chunkSize)
{
List<T> chunkReturn = new List<T>(chunkSize);
foreach (var item in sourceList)
{
chunkReturn.Add(item);
if (chunkReturn.Count == chunkSize)
{
yield return chunkReturn;
chunkReturn = new List<T>(chunkSize);
}
}
if (chunkReturn.Any())
{
yield return chunkReturn;
}
}
}
如果有错误,我希望再次运行该块。是否可以找到我们收到错误的特定块号并再次运行?批次必须按顺序执行。因此,如果批次#2 产生错误,那么如果再次失败,我需要能够再次运行 2。我只需要永远退出循环。