c# - 像这样优雅地重构代码(以避免出现标志)

标签 c# .net .net-4.0

我有一个运行在可枚举对象上的函数,但是对于第一项,该函数应该有点不同,例如:

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/

相关文章:

C# 比较集合

c# - 如何使用 SMO(服务器管理对象)创建 ALTER 脚本而不是 CREATE 脚本

c# - 如何在 IIS 中授予对 Web API 应用程序的写入权限?

C# - 如何删除临时 Internet 文件

c#-4.0 - 具有动态内容的 XmlSerializer、XmlArray...怎么样?

c# - 如何通过 C# 配置 Outlook 帐户?

C# - 与 SQL Server 2005 的公共(public)全局连接

.net - F# 无法识别 interop.office.Excel.dll

.net - 从VS 2008和.NET3.5迁移到VS 2010和.NET4.0时生成错误

c# - SQL CLR 函数返回可为空的 bool 值