1
12
对于您的具体示例,有一个标准解决方案:
如果您真的想自己写这篇文章,您可以使用以下方法:
|
2
18
就我个人而言,我喜欢Mark Byer的选项,但您可以为此编写自己的通用方法:
这相对简单。。。给一个特别的 最后的 行动稍难:
编辑:由于您的评论关注的是这个问题的表现,我将在下面的回答中重申我的评论:虽然这个普遍的问题是相当常见的,但它是 不 确切地 代码需要做什么。 不过,总的来说,我重视可读性和可重用性 许多的 |
3
7
|
4
6
你当然可以创造一个
为了你的 具体的 例如,在我看来,这看起来非常简单(这是您描述的解决方案之一):
或者你也可以用这个(借用其他答案):
|
5
4
[这假设数组中至少有一个元素,如果要避免的话,可以添加一个简单的测试。] 使用F#将是另一个建议:-) |
6
2
有很多方法可以绕过双重代码,但是在大多数情况下,重复的代码比可能的解决方案要简单得多。你引用的“goto”解决方案在我看来并不是一种改进——我真的认为你并没有通过使用它获得任何显著的好处(紧凑性、可读性或效率),同时你增加了程序员在代码生命周期的某个时候出错的风险。
这消除了每次检查循环是否在第一次迭代中所带来的低效,而且非常容易理解。对于非常重要的情况,使用委托或助手方法应用操作可以最大限度地减少代码重复。 或者我有时在效率不重要的情况下使用的另一种方法: 这可以写得比goto方法更紧凑、更可读,并且不需要任何额外的变量/存储/测试来检测“特殊情况”iteraiton。 但我认为马克·拜尔斯的方法对于你的例子来说是一个很好的解决方案。 |
7
0
我更喜欢
|
8
0
为什么不处理循环外的第一个元素呢?
|
9
0
如果你想走功能路线,你可以定义字符串。连接就像LINQ构造一样,它可以跨类型重用。 就我个人而言,我几乎总是追求代码的清晰性,而不是节省一些操作码执行。 如:
|
Tom Buck · c#程序在整数列表上冻结 6 年前 |
Ran Lavi · 在c中初始化结构的指针++ 6 年前 |
Js_zero · 在c++中实例化对象有几种方法,它们之间有什么区别 6 年前 |
jfernal · 节点。js在加载其他函数之前等待初始化变量 6 年前 |
Victor · 在javafx中运行时更改标签文本 6 年前 |
blubb · 在Kotlin中是否有更惯用的方法来初始化此映射? 6 年前 |
Bing Bang · 初始化包含字节数组的结构数组 6 年前 |