List<int> list = new List<int> { 1, 2, 4, 5, 6, 7 };
string selectQuery = "x";
var result = from x in list
where x > 3
select selectQuery;
这段代码将返回"xxxx",我希望它返回4 5 6 7。
我想通过字符串动态输入选择,但这段代码返回字符串。我得到了一个条件表,对于每个条件,我想使用LINQ查询,所以我把选择语句放在一个字符串表中,我想对每个条件应用它。
这是因为您正在为每个项目选择(返回)selectQuery
变量。
试试这个:
var result = from x in list
where x > 3
select x;
这将返回原始列表中与where子句中的条件匹配的每一项。
对不起,您不能在字符串中指定选择条件。我认为最接近的方法是在函数中指定标准,然后将函数赋给select。
试试这个:把你的select查询字符串转换成一个整数,然后用这个值过滤列表:
List<int> list = new List<int> { 1 ,2 ,4 ,5 ,6 ,7 };
string selectQuery = "2";
var result = from x in list
where x > Convert.ToInt32(selectQuery)
select x;
另一种方法是
list.Where(x => x > Convert.ToInt32(selectQuery)).ToList()
通过这种方式,您可以在字符串选择查询中使用动态值进行查询。