【问题标题】:How to print the contents of an array to a label in c# [duplicate]如何将数组的内容打印到c#中的标签[重复]
【发布时间】:2014-10-17 22:50:12
【问题描述】:

我想在每个数字之间用逗号显示标签中的数组内容。 num1 - num6 是从文本框转换而来的整数变量。 到目前为止,我已经做到了。

int[] number = new int [6] {num1, num2, num3, num4, num5, num6};

Array.Sort(number);

lblAnswer3.Text = number.ToString();

这段代码的输出是:System.Int32[]

我希望输出为:num1、num2、num3、num4、num5、num6,按升序排列。

【问题讨论】:

  • 使用Join数组方法。

标签: c# arrays label


【解决方案1】:

您可以使用string.Join 轻松连接 IEnumerables 和数组:

lblAnswer3.Text = string.Join(", ", number);

【讨论】:

  • +1 我没有意识到 String.Join 可以在 IEnumerable 上工作
  • @BradleyDotNET 在 .NET 4 中引入了重载
  • 在 .NET2 中你需要类似string.Join(","; Array.ConvertAll(number, delegate(int i) { return i.ToString(); }));
【解决方案2】:

你可以用 Linq 做到这一点:

lblAnswer3.Text = number.OrderBy(x => x).Select(x => x.ToString()).Aggregate((a, b) => a + ", " + b);

【讨论】:

  • -1。所有这些都是不必要的。
  • @JohnSaunders 否决一个可行的解决方案有点苛刻,不是吗?我们不应该只对我们最喜欢的解决方案投赞成票,对那些不起作用或不回答问题的解决方案投反对票吗?
  • @RufusL 我不确定 会否决它,但这个解决方案过于复杂,我可以理解它被认为是“没用的”。不过,升序可能需要OrderBy(如果它们尚未排序)。
  • @RufusL:给答案打分的目的是为了让未来的读者更有可能选择得分更高的答案。我想确保未来的读者不太可能选择这个。如果 OP 关心代表点数,那么 OP 可以删除答案并拿回两点。
  • “给答案打分的目的是为了让未来的读者更有可能选择得分更高的答案”用居高临下的语气陈述显而易见的事情只会让你看起来像个混蛋。答案没有错。你可以说它效率不高,但它是一种替代方法
猜你喜欢
  • 1970-01-01
  • 2017-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-05
相关资源
最近更新 更多