使用linq获取包含数组元素的子列表

时间:2015-05-22 22:13:29

标签: c# linq

我尝试了各种版本,但我只是在某个地方。 我正在使用Teleric Raddropdowncheckedlist

var states = stateDropDownList.CheckedItems.ToList();
var filteredStops = (from stop in aDb.Stop_address_details 
                     where states.Contains(stop.Stop_state) select stop).ToList();

状态包含一系列IL,AL等。 以下是来自状态的示例数据 - 在调试器中它表示状态计数3,它有3个元素0 = AZ,1 = IL和2 = AL。

stop_address_details包含字段stop_state。

我只需要将状态包含在stop_state中的记录。

我没有得到结果,因为它不会构建 - 错误: 此lamda表达式的参数数量与委托的参数数量不匹配。

解决方案:

var states = stateDropDownList.CheckedItems.Select(i => i.Value.ToString()).ToList();
        var filteredStops = (from stop in aDb.Stop_address_details where states.Contains(stop.Stop_state) select stop).ToList();

原始状态返回的是一系列项目,而不是字符串。 感谢您的帮助。 乔

1 个答案:

答案 0 :(得分:1)

尝试使用以下内容:

var states = stateDropDownList.CheckedItems.Select(i=>i.Value.ToString()).ToList();

i.Value位非常依赖于您正在使用的DropDownList。如果CheckedItems是一个不实现标准接口的自定义集合类型,则无法保证工作。