c# - 使用 linq 执行此操作的更好方法

标签 c# linq

你好, 我有这个不能 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/

相关文章:

c# - Linq 模式匹配

c# - LINQ to Entities 无法识别方法 'Int32 Next()' 方法

c# - 如何对字典执行 LINQ 查询?

c# - "object is enumerated"在 C# 中是什么意思?

c# - SQL Server 2008 : FileStream Insertion Failure w/. NET 3.5SP1

c# - 无法转换 System.Runtime.Remoting.ObjectHandle

c# - 在 Windows 7 中注销 Alt-Tab 热键

c# - Linq:按名称选择所有项目组,计数等于0

c# - XML 阅读器性能

C# - Linq 使用 List 和 Where 子句优化代码