【问题标题】:Append 'List' items to StringBuilder将“列表”项目附加到 StringBuilder
【发布时间】:2011-05-15 02:04:22
【问题描述】:

我尝试使用 LINQ 将 List<string> 中的项目附加到 StringBuilder

items.Select(i => sb.Append(i + ","));

我发现了一个类似的问题 here,它解释了为什么上述方法不起作用,但我在 ForEach 上找不到 EachList 上的任何类似问题,我可以使用它来代替。

有没有一种简洁的方法可以在单行中做到这一点?

【问题讨论】:

  • 您使用的是什么版本的 .Net? ForEach 是 .Net 4 中通用列表中的一种方法。
  • 是的,不幸的是,我是 .Net 3.5

标签: c# .net list iterator stringbuilder


【解决方案1】:
items.ForEach(item => sb.Append(item + ","));

【讨论】:

  • 请注意,您必须坚持使用 List 而不是 IList ,因为该扩展不再可用。这就是为什么我更喜欢编写自己的适用于 IEnumerable 的 ForEach。
【解决方案2】:

您可以使用简单的foreach 循环。这样你就有了修改 StringBuilder 的语句,而不是使用带有副作用的表达式。

也许String.Join(",", items) 可以更好地解决您的问题。

【讨论】:

  • 我完全忘记了String.Join。有时我真的需要摆脱我的 Linq wankathon 并记住人们以前是如何编程的 :)
【解决方案3】:

试试这个:

 String [] items={"Jan","Feb","Mar"};
 StringBuilder sb=new StringBuilder();
 foreach(var entity in items)
 {
   sb.Append(entity + Environment.NewLine);
 }
 Textbox1.Text=sb.tostring();

输出:

一月

二月

三月

【讨论】:

    猜你喜欢
    • 2018-09-22
    • 2015-04-16
    • 2011-10-12
    • 2013-12-24
    • 1970-01-01
    • 1970-01-01
    • 2021-08-01
    • 2011-01-31
    • 2021-07-11
    相关资源
    最近更新 更多