我有一个运行在可枚举对象上的函数,但是对于第一项,该函数应该有点不同,例如:
void start() {
List<string> a = ...
a.ForEach(DoWork);
}
bool isFirst = true;
private void DoWork(string s) {
// do something
if(isFirst)
isFirst = false;
else
print("first stuff");
// do something
}
您将如何重构它以避免出现丑陋的标志?
最佳答案
根据 Jimmy Hoffa 的回答,如果你真的想对第一个项目做某事,你可以这样做。
DoFirstWork(a[0])
a.Skip(1).ForEach(DoWork)
如果重点是它在逻辑上与列表的其余部分是分开的,那么您应该使用一个单独的函数。
关于c# - 像这样优雅地重构代码(以避免出现标志),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3609987/