我有一个asp.net DropDownList,它从SQL视图中提取信息。通过另一个SELECT查询,我从表中填充List
branchID's
。然后我想看看这个List是否包含与branchDDL.SelectedValue
相同的值。我在submit button click event
:
List<int> branches;
while (reader1.Read())
{
branches = (from IDataRecord r in reader1 select (int)r["branchID"]).ToList();
}
if (branches.Contains(branchDDL.SelectedValue))
{
// Do something here.
}
问题是这不起作用。 if检查说它有一些无效的参数。有人能指出我正确的方向吗?
答案 0 :(得分:1)
if (branches.Contains(Int32.Parse(branchDDL.SelectedValue)))
所选值是一个字符串,但您使用整数填充列表
答案 1 :(得分:1)
您遇到的问题是您将string
值与integers
进行比较,使Equals()
返回false。
使用默认相等比较器确定序列是否包含指定元素。
在您的代码中,调用Equals
,一边是string
,另一边是int
,永远不会相等。尝试将SelectedValue
解析为整数并在之后进行比较;它应该工作。