我試圖重構一個非常長的foreach
循環。我被困在幾個地方,其中有continue
。這裏是一些虛擬代碼來模仿我的原代碼重構foreach循環並繼續嗎?
IEnumerable<dynamic> allData = FetchAllData();
IEnumerable<dynamic> relativeData = FetchAllRelativData();
foreach (var rdata in relativeData)
{
IEnumerable<dynamic> dataTobeProcessed = allData.Where(c => c.Name = rdata.Name);
//Do something
//if then Continue
// do something
//if then continue
// do something
// do something
// add data to db
}
這裏我已經刪除了所有做某件事情分開的功能。但是我又有幾個代碼部分,其中有continue
,這是斷開循環並前進到下一個元素。所以,我無法分開那部分。
再一次,在這裏我有像步驟的約束是在繼續。意思是第一件事發生在第二件事,然後是第三件事,然後接下來......所以,我現在不能移動代碼的位置。因爲我的功能很大,大約有300條線路,現在變得很難改變或維護。
請通過改變編碼方式,爲刪除continue
或另一種方法break
方法提供一個很好的解決方案。
請讓我知道是否需要任何其他細節。
你可以發佈整個方法嗎?我知道300行很長,但也許這有助於更多然後評論 – bas 2013-03-24 08:55:18