我打破了列表分割成塊,並如下處理它:列表<T>獲取塊號碼
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。我只是需要擺脫困境。
「breaklistinchunks」是什麼樣的? –
我編輯過你的標題。請參閱:「[應該在其標題中包含」標籤「](http://meta.stackexchange.com/questions/19190/)」,其中的共識是「不,他們不應該」。 –
簡單的答案是,你不能使用foreach而不使用外部變量。這裏有一個長問題:http://stackoverflow.com/questions/43021/how-do-you-get-the-index-of-the-current-iteration-of-a-foreach-loop – Candide