我需要比较五个下拉列表索引。它除了零索引
之外不应该相同 所有五个下拉列表中的aspx页面代码相同
<asp:DropDownList ID="DropDownList_l1_5" runat="server"
OnSelectedIndexChanged="DropDownList_l1_5_SelectedIndexChanged"
AutoPostBack="True">
<asp:ListItem>Select</asp:ListItem>
<asp:ListItem Value="1">Neck</asp:ListItem>
<asp:ListItem Value="2">Shoulder</asp:ListItem>
<asp:ListItem Value="3">Arm</asp:ListItem>
<asp:ListItem Value="4">Lower Back</asp:ListItem>
<asp:ListItem Value="5">Leg</asp:ListItem>
<asp:ListItem Value="6">Other</asp:ListItem>
</asp:DropDownList>
我试过下面的代码
int idx1 = DropDownList_l1_1.SelectedIndex;
int idx2 = DropDownList_l1_2.SelectedIndex;
int idx3 = DropDownList_l1_3.SelectedIndex;
int idx4 = DropDownList_l1_4.SelectedIndex;
int idx5 = DropDownList_l1_5.SelectedIndex;
if (idx1 != 0 || idx2 != 0 || idx3 != 0 || idx4 != 0 || idx5 != 0)//this line is probelm
if (idx1 != idx2 || idx1 != idx3 || idx1 != idx4 || idx1 != idx5)
{
// statement
}
任何想法......
答案 0 :(得分:2)
应使用&&
代替||
if(idx1 != 0 && idx2 != 0 && idx3 != 0 && idx4 != 0 && idx5 != 0)
if( idx1 != idx2 && idx1 != idx3 && idx1 != idx4 && idx1 != idx5 )
{
//Statement
}
更新:
if(idx1 != 0 && idx2 != 0 && idx3 != 0 && idx4 != 0 && idx5 != 0)
if( idx1 != idx2 && idx1 != idx3 && idx1 != idx4 && idx1 != idx5 &&
idx2 != idx3 && idx2 != idx4 && idx2 != idx5 &&
idx3 != idx4 && idx3 != idx5 &&
idx4 != idx5
)
{
// statement
}
答案 1 :(得分:2)
要确切地说出你要做的事情是很难的。我想你说的是:
SelectedIndex
值如果是这种情况,那么您可以使用如下的简单LINQ语句。它忽略0 (列表中没有选择)的值,然后确保每个索引值(1,2等)只出现一次。
var allIndexes = new List<int>
{
DropDownList_l1_1.SelectedIndex,
DropDownList_l1_2.SelectedIndex,
DropDownList_l1_3.SelectedIndex,
DropDownList_l1_4.SelectedIndex,
DropDownList_l1_5.SelectedIndex
};
var noSelectedIndexIsTheSame = allIndexes.Where(x => x != 0)
.GroupBy(x => x)
.All(x => x.Count() == 1);
if (noSelectedIndexIsTheSame)
{
// no selected values are the same, so do something
...
}
答案 2 :(得分:0)
这里的一个大问题是你使用错误的UI隐喻来选择事物。列表中有5个项目,您有5个下拉列表,您希望每个项目最多选择一次。这对程序员来说也很难处理。
我们如何确定是否选择了颈部?
if (idx1 == 1
|| idx2 == 1
|| idx3 == 1
|| idx4 == 1
|| idx5 == 1) //neck chosen
作为一组复选框
,这不会更好吗?[x] Neck
[ ] Shoulders
[ ] Arm
[ ] Lower back
[ ] Leg
现在用户只能选择一个项目,而程序员只有一个地方可以检查是否选择了颈部。
if (chkNeck.IsChecked) //neck chosen