【发布时间】:2016-09-20 21:38:39
【问题描述】:
我在我的一个项目中使用动态 LINQ 来过滤数组。库可以从下载 NuGet Gallery link 或 Codeplex link。 我正在使用来自 NuGet 链接的 1.0.6 版本。它与 LINQ 相同,但可以使用字符串指定条件。例如:myArray.Where(myDynamicQueryString)
我根据左、右表达式和运算符即时构建 QueryString。例如,如果我的查询是
- abc
- xyz == 5.0,myDynamicQueryString 将是 (xyz = 5)
- def == "Name",myDynamicQueryString 将是 (def = "Name")
- var == "Str*", myDynamicQueryString 将是 (var.StartsWith("Str"))
- var == "*Str", myDynamicQueryString 将是 (var.EndsWith("Str"))
- var == "*Str*", myDynamicQueryString 将是 (var.Contains("Str"))
现在,对于像 *abc*def* 这样的查询,查询字符串应该是什么?
我知道这意味着,它可以以任何东西开始,以任何东西结束,并且在 abc 和 def 之间有任何东西,但是 abc 和 def 应该以特定的顺序出现。但是,如何使用 StartsWith/EndsWith/Contains 将其转换为查询表示(这些是我知道的,如果还有其他我可以使用,请告诉我)
【问题讨论】:
标签: c# regex linq dynamic-linq