Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在c#中执行此操作?_C#_Asp.net_Controls - Fatal编程技术网

如何在c#中执行此操作?

如何在c#中执行此操作?,c#,asp.net,controls,C#,Asp.net,Controls,我有一个MyClass的列表,在主页上我有10个控件,它们将显示关于该项目列表的信息。我想要的是检查列表中项目的计数,然后使多余的控件不可见。现在我正在使用这个代码,但是有没有更简单的方法呢 if (myList.Count > 0) { Control1.MyClassInfo = myList[0]; if (myList.Count > 1) { Control2.MyClassInfo = myList[1];

我有一个MyClass的列表,在主页上我有10个控件,它们将显示关于该项目列表的信息。我想要的是检查列表中项目的计数,然后使多余的控件不可见。现在我正在使用这个代码,但是有没有更简单的方法呢

 if (myList.Count > 0)
 {
      Control1.MyClassInfo = myList[0];
      if (myList.Count > 1)
      {
           Control2.MyClassInfo = myList[1];
           if (myList.Count > 2)
           {
                // and like that till 10
           }
           else
           {
                Control3.Visible = false;
                Control4.Visible = false;
                // till 10
           }
       }
       else
       {
           Control2.Visible = false;
           Control3.Visible = false;
           // till 10
       }
  }
  else
  {
       Control1.Visible = false;
       Control2.Visible = false;
       Control3.Visible = false;
       // and then till 10
  }

那么,只需将控件添加到列表中(按顺序)

诸如此类

var controlList = new List<Control>{ Control1, Control2, Control3 /*etc*/};


var count = myList.Count;
for (var i = 0; i < controlList.Count; i++) {
  controlList[i].Visible = count > i;
}
var controlList=新列表{Control1,Control2,Control3/*etc*/};
var count=myList.count;
对于(变量i=0;ii;
}

好吧,只需将控件添加到列表中(按顺序)

诸如此类

var controlList = new List<Control>{ Control1, Control2, Control3 /*etc*/};


var count = myList.Count;
for (var i = 0; i < controlList.Count; i++) {
  controlList[i].Visible = count > i;
}
var controlList=新列表{Control1,Control2,Control3/*etc*/};
var count=myList.count;
对于(变量i=0;ii;
}

您可以创建控件列表

List<Control> MyControls = new List<Control>{Control1, Control2,..,Control10};
List MyControls=新列表{Control1,Control2,…,Control10};
然后

foreach(var C in MyControls)
    C.Visible=false;

for(int i=0; i<myList.Count; i++)
    C[i].Visible=true;
foreach(MyControls中的var C)
C.可见=假;

对于(int i=0;i,您可以创建控件列表

List<Control> MyControls = new List<Control>{Control1, Control2,..,Control10};
List MyControls=新列表{Control1,Control2,…,Control10};
然后

foreach(var C in MyControls)
    C.Visible=false;

for(int i=0; i<myList.Count; i++)
    C[i].Visible=true;
foreach(MyControls中的var C)
C.可见=假;

对于(inti=0;iEDIT):对于更高级的编码器,这种技术称为

基本上就是这样。但是你可以通过两种方式改进这个基本概念:

1) 使用集合

List<Control> _controls1to10;
这意味着您在顶部有主开关,并在以下代码中使用它们。这是一个幻想的示例,用于澄清概念,但不适用于您的代码:

bool isEditable = User.LoggedIn && SystemState.Maintenance == false && item.Count > 0;

editButton.Visible = isEditable;
dropList.Visible = !isEditable;

编辑:对于这里更高级的编码器,这种技术称为

基本上就是这样。但是你可以通过两种方式改进这个基本概念:

1) 使用集合

List<Control> _controls1to10;
这意味着您在顶部有主开关,并在下面的代码中使用它们。这是一个明确概念的幻想示例,但不适用于您的代码:

bool isEditable = User.LoggedIn && SystemState.Maintenance == false && item.Count > 0;

editButton.Visible = isEditable;
dropList.Visible = !isEditable;

这是一对一的关系。如中所示,myclass列表中的每个项都对应一个控件。这是一对一关系。我的类列表中的每一项都对应一个控件。拉斐尔的答案更好:)好吧,拉斐尔的答案更好:)谢谢你,谢谢你,谢谢所有帮助我的人,谢谢所有帮助我的人