【问题标题】:Place contents of IList into a label?将 IList 的内容放入标签中?
【发布时间】:2014-04-30 18:31:27
【问题描述】:

我正在尝试找到一种将 IList 的结果打印到标签中的方法,以便我可以查看返回的确切内容。我需要检查存储在 IList 中的信息,看看是否有任何问题。

 IList<OrderItem> orderItems

如果我想将 orderItems 的内容放入标签中,我该怎么做?我需要 String.Join 吗?我需要一个 foreach 吗?

【问题讨论】:

  • 你试过String.Join吗?
  • 您想在OrderItem 中显示什么?需要看看那个类是什么样子的。
  • 在你的类 OrderItem 中覆盖 ToString,根据你的属性返回一些连接的字符串,然后在你的集合上调用 string.Join
  • 嗯,你有两个想法。试试看。走着瞧吧。如果您在这些尝试中遇到任何问题,请发布您的代码并解释问题(在对这些问题进行一些基础研究以查看是否可以找到解决方案之后)。
  • 我不明白。你为什么不试试?

标签: c# list arraylist


【解决方案1】:

我建议从您的订单项目中构建一个IEnumerable&lt;string&gt;,然后通过String.Join 将其转换为单个字符串:

// This formats each item as ID:Name
var itemsAsText = orderItems.Select(item => string.Format("{0}:{1}", item.ID, item.Name));

label.Text = string.Join(", ", itemsAsText);

【讨论】:

    【解决方案2】:
    List<OrderItem> tmp = orderedItems as List<OrderItem>;
    tmp.ForEach(a => this.Label1.Text += a.PropertyHere.ToString());
    

    【讨论】:

    • IList 没有 ForEach 方法。
    • 如果 IList 不是 List 则会抛出
    • 好吧,如果 OrderItem 不包含名为 ID 或 Name 的属性,你的也会抛出...我的基础是他正在使用他在尝试显示时知道的类型价值观... ;)
    • 我的不会抛出 - 它不会编译 :) 这将编译但可能会在运行时抛出。假设任何 IList 都是 List 是不合理的 - 它可能是许多集合类型之一。
    • 我同意! :) 但在他的代码中,他指定了 是什么,所以它不再是 IList 而是 IList ;) 然后我的不会抛出 ;)
    猜你喜欢
    • 2020-12-12
    • 2019-04-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-09
    • 1970-01-01
    • 1970-01-01
    • 2017-10-13
    • 2021-09-27
    相关资源
    最近更新 更多