我试图重构一个很长的foreach
循环。我陷入了困境,就像我在其中的几个地方continue
一样。这是一些模仿我的原始代码的虚拟代码
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
如果需要任何其他详细信息,请告诉我。