如何在代码中使用IEnumerable字符串参数
本文关键字:IEnumerable 字符串 参数 代码 | 更新日期: 2023-09-27 18:00:09
作为搜索页面的一部分,我允许用户使用KendoUI Multiselect小部件对特定搜索词进行多选。集合中的这些项作为参数传递给我的控制器。我的问题是,在我将它们传递给我的控制器后,我该如何使用它们?更具体地说,如何在使用Contains方法的Where语句中使用它们。
这是我的多选窗口小部件的代码
@(Html.Kendo().MultiSelect()
.Name("vessel_type")
.Placeholder("Select Type")
.BindTo(new List<string>() {
"AHTS",
"PSV",
"Special"
}))
这是我的控制器代码,它使用vessel_type作为参数
public ActionResult Search(IEnumerable<string> vessel_type)
{
var vessels = (from o in db.vessels
select o);
vessels = vessels.Where(s => s.vessel_type.Contains(vessel_type));
return PartialView("_results", vessels);
}
这行不正确,因为它需要一个字符串,但我有一个mroe集合,而不是一个:
vessels = vessels.Where(s => s.vessel_type.Contains(vessel_type));
感谢
如果我正确理解这个问题,我相信你需要用另一种方式进行检查,即检查vessel_type
集合是否包含船只的类型:
vessels = vessels.Where(s => vessel_type.Contains(s.vessel_type));
这里CCD_ 2是对CCD_ 3的一个扩展方法。
顺便说一句,由于参数表示集合,我认为复数名称更合适,例如vessel_types
。