2

我有一个 asp.net DropDownList 从 SQL 视图中提取其信息。通过另一个 SELECT 查询,我从表中填充List了一个。branchID's然后我想看看这个 List 是否包含与branchDDL.SelectedValue. 我在 a 中有以下代码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 检查说它有一些无效的参数。有人可以指出我正确的方向吗?

4

2 回答 2

1
if (branches.Contains(Int32.Parse(branchDDL.SelectedValue)))

选定的值是一个字符串,但您正在使用整数填充列表

于 2013-07-09T23:21:12.007 回答
1

您在这里遇到的问题是您将string值与进行比较integers,从而使Equals()返回为假。

正如MSDN 页面指定的那样:

使用默认相等比较器确定序列是否包含指定元素。

在您的代码中,一边Equals用 a 调用,另一边用 a 调用,这永远不会相等。尝试将您解析为整数并在之后进行比较;它应该工作。stringintSelectedValue

于 2013-07-09T23:23:51.353 回答