我试图重构一个非常长的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