我有一个在枚举上运行的函数,但第一项的函数应该有点不同,例如:
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
}
Run Code Online (Sandbox Code Playgroud)
你会如何重构这个以避免那个丑陋的旗帜?
如果你真的想要用第一个项目做一些事情就可以解释Jimmy Hoffa的答案.
DoFirstWork(a[0])
a.Skip(1).ForEach(DoWork)
如果关键是它在逻辑上与列表的其余部分是分开的,那么你应该使用一个单独的函数.