【问题标题】:Trying to display an array of numbers onto label [duplicate]试图在标签上显示一组数字[重复]
【发布时间】:2016-10-16 03:36:17
【问题描述】:
private static void Display(params Object[] things)
{
    foreach (Object num in number)
       Label5.Text = "{0} ", + num;
}

我真的不知道该怎么做。我想在label5 上显示所有输入数字,但我不确定该怎么做。

例如:我有一个textBox,用户在textBox 中输入23, 50, 89, 73, 40 等,我想显示用户在label5 中输入的数字。谢谢你。

【问题讨论】:

    标签: c# .net


    【解决方案1】:

    要将IEnumerable<T> 项目连接到string,请尝试使用String.Join

    Label5.Text = String.Join(", ", numbers);
    

    【讨论】:

    • 这是一个很酷的方式...
    • 令人惊讶的是之前没有人提出that...
    【解决方案2】:

    你正在被 for 循环中的每个新迭代覆盖最后一个值

    改为这样做: 将数组中的所有元素放在一个变量中(使用 StringBuilder) 然后完成后,使用该变量设置标签的内容

    示例:

    var sb = new StringBuilder();
    
    foreach (Object num in number){
        sb.append(num);
    }
    Label5.Content = sb.ToString;
    

    编辑

    添加逗号以分隔值:

    var sb = new StringBuilder();
    var comma = ""; 
    foreach (Object num in number){
        sb.append(comma).append(num);
        comma = ", ";
    }
    Label5.Content = sb.ToString;
    

    【讨论】:

    • 这个输出将是2350897340 缺少逗号,你也错过了最后一个() ToString
    • 太好了,我投了赞成票 :)
    【解决方案3】:

    如果你想显示用户在textbox 中输入的文本,为什么不直接赋值呢

    label5.Text = textbox.Text; 
    

    你想要的方式,从数组中设置它,你可以这样做:

    private static void Display(params Object[] things)
    {
        foreach (Object num in number)
           Label5.Text = Label5.Text + String.Format("{0}, " + num);
    }
    

    我不太明白,如果你不使用数组 ob 对象,为什么要将它们传递给方法。

    【讨论】:

    • 由于某种原因,它说 label5 在当前上下文中不存在,但它显示在表单上。我做错了吗?
    • 如何/在哪里调用Display 方法?它必须是静态的吗?
    • Nvm,我现在明白了,谢谢你的帮助。我在 main 上调用 display 方法,它不必是静态的。
    • 您还应该重新考虑 num 是否必须是 Object 输入参数也是如此
    • 是的,我的书给了我一个糟糕的解释或简要说明何时使用它们。你能帮我理解一下吗?或者给我一个链接,我可以在那里阅读更多信息?
    猜你喜欢
    • 2018-09-12
    • 1970-01-01
    • 2016-01-15
    • 2022-01-10
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 2023-02-23
    • 2012-10-03
    相关资源
    最近更新 更多