尝试使用lambda的IList.Contains,但不是委托类型

时间:2013-11-14 21:18:45

标签: linq lambda ilist

我正在尝试搜索列表,看看是否有ID。

            string idText = item["FCSID"].Text;
            var sfhOptions = PathologySFHByRole.GetSFHOptionsByRoles(Model.pathologyFishCultureStation);
            if (!sfhOptions.Contains(x => x.ID == int.Parse(idText))) 
                e.Item.Cells[0].Visible = false;

GetSFHOptionsByRoles返回一个IList。我的lambda表达式得到错误: 无法将lambda表达式转换为SFHType类型,因为它不是委托类型

最佳做法是什么?

1 个答案:

答案 0 :(得分:3)

您可以使用Any

int id = int.Parse(idText);
e.Item.Cells[0].Visible = sfhOptions.Any(x => x.ID == id);

IList<T>.Contains期望类型为SFHType的对象而不是谓词。