我在我的一个项目中使用Dynamic LINQ来过滤数组。图书馆可以从中下载 NuGet Gallery link或 Codeplex link。 我正在使用NuGet链接的1.0.6版本。它与LINQ相同,但可以使用字符串指定条件。例如:myArray.Where(myDynamicQueryString)
我基于左,右表达式和运算符动态构建QueryStrings。例如,如果我的查询是
现在,查询字符串应该用于* abc * def *之类的查询?
我知道这意味着,它可以从任何事情开始,以任何东西结束并且在abc和def之间有任何东西,但是abc和def应该以特定的顺序出现。但是,如何使用StartsWith / EndsWith / Contains将其转换为查询表示(这些是我知道的,如果还有其他我可以使用,请告诉我)
答案 0 :(得分:1)
看起来你需要的是IndexOf。这将返回子字符串的起始索引(如果存在),否则返回-1。
var.Contains("abc") && var.Contains("def") &&
var.IndexOf("abc") > var.IndexOf("def")
例如,如果我们使用字符串XabcXdefXabc
,则var.IndexOf("abc")
将产生1
,而var.IndexOf("def")
将产生5
。