你好, 我有这个不能 100% 工作的 foreach 循环。基本上我正在输出一个字符串。我的问题是我不想要 sb.Append(",");要添加到循环中的最后一条记录。有没有使用 linq 的简单方法来解决这个问题?
sb.Append("Readings:[");
foreach (var reading in lake.Reading)
{
sb.Append("[");
sb.Append("\"");
sb.Append(reading.DateTime.ToString("dd-MMM-yy"));
sb.Append("\"");
sb.Append(",");
sb.Append(reading.Level);
sb.Append("]");
//only insert this line if its the not the last record sb.Append(",");
}
sb.Append("]");
最佳答案
您应该考虑使用 String.Join()
或 String.Concat()
。它使将(逗号分隔)列表作为字符串变得更加容易。并且与 LINQ 配合得很好。
var combine = from r in lake.Reading
select String.Format("[\"{0:dd-MMM-yy}\",{1}]", r.DateTime, r.Level);
var str = String.Format("Readings:[{0}]", String.Join(",", combine));
关于c# - 使用 linq 执行此操作的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4041777/