LINQ 语法错误中的动态 Where 子句

Dynamic Where Clause in LINQ Syntax error

我试图在我的 LINQ 语句中构建一个动态 WHERE 子句,但是我遇到了一些问题。

目前我有以下内容:-

string[] types = typeId[0].Split(','); //contains string array like {"1,2,3"}
marketing = marketing.Where( type => types.Contains(type.TypeID)).ToList();

谁能告诉我实现此目的的正确语法?

谢谢

根据您的错误消息,type.TypeIDint

所以你基本上有两个选择:

选项 1:将 types 转换为 int[]

int[] types = typeId[0].Split(',').Select(id => int.Parse(id)).ToArray();
marketing = marketing.Where( type => types.Contains(type.TypeID)).ToList();

选项 2:将 type.TypeID 转换为 string

string[] types = typeId[0].Split(',');
marketing = marketing.Where( type => types.Contains(type.TypeID.ToString())).ToList();