【发布时间】:2010-02-09 18:14:44
【问题描述】:
这个问题多年来一直困扰着我,当有更好的解决方案时,我总是觉得自己想出了一个技巧。当您想要对列表中的所有项目执行某项操作,然后在这些项目之间添加一些内容时,就会出现手头的问题。简而言之,我想:
- 对列表中的每个项执行操作。
- 对列表中除了最后一个项目之外的所有项目执行其他操作(实际上,在列表中的项目“中间”执行操作)。
例如,假设我有一个名为 Equation 的类:
public class Equation
{
public string LeftSide { get; set; }
public string Operator { get; set; }
public string RightSide { get; set; }
}
我想遍历Equations 的列表并返回一个将这些项目格式化在一起的字符串;类似于以下内容:
public string FormatEquationList(List<Equation> listEquations)
{
string output = string.Empty;
foreach (Equation e in listEquations)
{
//format the Equation
string equation = "(" + e.LeftSide + e.Operator + e.RightSide + ")";
//format the "inbetween" part
string inbetween = " and ";
//concatenate the Equation and "inbetween" part to the output
output += equation + inbetween;
}
return ouput;
}
上面代码的问题是它会在返回字符串的末尾包含and。我知道我可以一起破解一些代码,将foreach 替换为for 循环,并仅在它不是最后一项时添加inbetween 元素;但这似乎是一个黑客行为。
是否有处理此类问题的标准方法?
【问题讨论】: