我可以用动态LINQ解析器在列表中搜索吗

fnatzsnv  于 2023-01-28  发布在  其他
关注(0)|答案(2)|浏览(125)

在代码页https://www.codeproject.com/Articles/355513/Invent-your-own-Dynamic-LINQ-parser中,首先阅读上面的page i want search in list in list

var item2 = new List<List<object>>()
    {
        new List<object>{"a", 1000 },
        new List<object>{"n", 900, 1000},
    };

string s = "[0] == \"a\" ";

但不工作,请帮助我,我的变量不是常数条件是动态的,从最终用户创建,可能有(&& || == >= != and .....)

var pred = SimpleExpression.PredicateParser<Element>.Parse(s);

代码中的此行错误

u4vypkhs

u4vypkhs1#

你可以做这样的事

var item2 = new List<List<object>>()
           {
              new List<object>{"a", 1000 },
        new List<object>{"n", 900 ,1000},
   };

foreach(List<object> list in item2)
{
    foreach(object obj in list)
    {
        if(obj == "a")
        {
            Console.WriteLine("find!");
        }
    }

}

4szc88ey

4szc88ey2#

不能直接回答您的问题,但您可以使用众所周知的Dynamic Linq

var item2 = new List<List<object>>()
{
    new List<object>{"a", 1000 },
    new List<object>{"n", 900, 1000},
};

string s = "x => x[0] == \"a\" ";

var result = item2.AsQueryable().Where(s).ToList();

您可以在dotnetfiddle中尝试

相关问题