如何在代码中使用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));

感谢

如何在代码中使用IEnumerable字符串参数

如果我正确理解这个问题,我相信你需要用另一种方式进行检查,即检查vessel_type集合是否包含船只的类型:

vessels = vessels.Where(s => vessel_type.Contains(s.vessel_type));

这里CCD_ 2是对CCD_ 3的一个扩展方法。

顺便说一句,由于参数表示集合,我认为复数名称更合适,例如vessel_types

相关文章: