我正在尝试编写一些 linq 来搜索存储项目中的值与列表中的任何值匹配的项目 - 如果它是字符串列表并搜索字符串,我可以轻松地做到这一点,但是当它是一个列表时枚举(整数)我无法弄清楚。
List<MyEnum> categories = new List<MyEnum>();
categories.Add(MyEnum.Fred);
categories.Add(MyEnum.Bill);
categories.Add(MyEnum.Jim);
// MyTable.Category is of type MyEnum
return (from o in Table<MyTable>()
where categories.Any(val => o.Category.Contains(val))
select o).Count();
编辑了更多信息 -
代码是:
public int LocalOffersCount(double distance, List<LocalCategory> categories)
{
try
{
return (from o in Table<LocalOffer>() where categories.Any(val => o.Category.Contains(val)) select o).Count();
}
catch (Exception ex)
{
Log.Error("DatabaseService->LocalOffersCount: " + ex.Message);
return 0;
}
}
MyTable 包含各种项目,“类别”项目是一个 LocalCategory 枚举,从 1 到 10。
我得到的编译错误是 -
无法从用法中推断方法“System.Linq.Enumerable.Contains(this System.Collections.Generic.IEnumerable, TSource)”的类型参数。尝试明确指定类型参数 (CS0411)