【问题标题】:c# what is the efficent way to do this code - style php "eval"c# 执行此代码的有效方法是什么 - 样式 php "eval"
【发布时间】:2010-12-08 19:11:01
【问题描述】:

我在 c# 中有一个 windows 应用程序,形式为我有 12 个带有名称的标签

label1, label2 , ...............

我有 12 个数字的数组(经过一些计算)

喜欢:

int[] nums = new int[12] {1, 0, 4, 6,.............};

我想在循环中为每个标签项分别从数组中分配一个值

类似

 for (int i = 1; i <= 12; i++) {
     label+i.Text = nums[i-1].ToString();
   }

这样做的有效方法是什么?

谢谢

【问题讨论】:

    标签: c# variable-assignment labels


    【解决方案1】:

    创建对应的标签数组:

    Label[] labels = new Label[12] { label1, label2, ... };
    
    for(int i = 0; i < 12; i++)
    {
        labels[i].Text = nums[i].ToString();
    }
    

    【讨论】:

      【解决方案2】:

      如果所有标签都属于同一个控件(例如 Panel),您可以使用查找控件来执行此分配:

      for(int i = 0;i < 12; i++)
      {
          Label lbl = myPanel.FindControl("Label" + i.ToString());
          lbl.Text = nums[i].ToString();
      }
      

      【讨论】:

      • Bryan 的解决方案效率更高。
      • @yodaj007 - 对循环有效,但对存储空间无效。在任何一种情况下,我们都在谈论微不足道的资源差异,因此它更像是代码风格的问题。两者最终都达到了相同的结果。
      【解决方案3】:

      您可以使用FindControl方法根据名称定位控件:

      for (int i = 0; i < nums.Length; i++) {
        (Form.FindControl("label" + i.ToString()) as Label).Text = nums[i].ToString();
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-06-06
        • 1970-01-01
        • 2021-02-14
        • 1970-01-01
        • 1970-01-01
        • 2014-01-06
        • 1970-01-01
        相关资源
        最近更新 更多