如何在c#中执行此操作?
我有一个MyClass的列表,在主页上我有10个控件,它们将显示关于该项目列表的信息。我想要的是检查列表中项目的计数,然后使多余的控件不可见。现在我正在使用这个代码,但是有没有更简单的方法呢如何在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];
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列表中的每个项都对应一个控件。这是一对一关系。我的类列表中的每一项都对应一个控件。拉斐尔的答案更好:)好吧,拉斐尔的答案更好:)谢谢你,谢谢你,谢谢所有帮助我的人,谢谢所有帮助我的人