C# 如何将搜索字符串转换为布尔条件?
我将搜索条件存储在字符串中:C# 如何将搜索字符串转换为布尔条件?,c#,string,search,boolean,C#,String,Search,Boolean,我将搜索条件存储在字符串中: string Searchstr = "(r.Value.Contains("PwC") || (r.Value.Contains("Canadian") && r.Value.Contains("thrive"))) || (r.Value.Contains("Banana") && r.Value.Contains("Gayle"))" 我想在If语句中使用此选项来检查值: if(searchstr) { then do t
string Searchstr = "(r.Value.Contains("PwC") || (r.Value.Contains("Canadian") && r.Value.Contains("thrive"))) || (r.Value.Contains("Banana") && r.Value.Contains("Gayle"))"
我想在If语句中使用此选项来检查值:
if(searchstr)
{
then do this....
}
但是if应该有一个searchstr作为布尔值
如何将其转换为布尔值
编辑:要求在文本框中以以下格式动态给出搜索条件-“PwC或(加拿大和茁壮成长)”。
它将用于搜索XML文件
因此,我加载了一个XML文件,并希望在LINQ中有一个Where条件,我需要使用动态LINQ,但其中不允许使用字符串,而且我还需要处理一些大括号
考虑到这一点,我从XML中获取了结果集(需要搜索的标记值)
理想情况下,我想尝试一下:
var query=selectedbook.Where(searchstr)
或
你需要做一些工作来实现这一点,但这是可能的 您应该看看动态LINQ库。这允许您将LINQ条件(和其他子句)指定为字符串,并像LINQ运算符一样执行它们 从ScottGu博客上的解释开始,然后点击以下链接:
要实现这一点,您需要做一些工作,但这是可能的 您应该看看动态LINQ库。这允许您将LINQ条件(和其他子句)指定为字符串,并像LINQ运算符一样执行它们 从ScottGu博客上的解释开始,然后点击以下链接:
我假设字符串只引用一组特定的对象(
r
或r.Value
,例如,在本例中-或您想要的任何其他对象,只要您事先知道)。如果是这种情况,则:
委托
,该委托将对象(可能被引用)作为参数
并根据需要返回一个bool
李>
CSharpCodeProvider
类编译程序集
使用自定义函数返回所需的bool
我假设字符串只引用一组特定的对象(例如,在本例中是
r
或r.Value
,或者任何您想要的对象,只要您事先知道)。如果是这种情况,则:
委托
,该委托将对象(可能被引用)作为参数
并根据需要返回一个bool
李>
CSharpCodeProvider
类编译程序集
使用自定义函数返回所需的bool
好吧,你可能猜不到这是一个直截了当的问题,但同时它也不是一个看起来那么难的问题 您可以执行以下几个步骤来获得所需:
XElement
上编写一个扩展方法,该方法返回true并将搜索条件作为输入。然后您将能够使用
var selectedBook = from r in
document.Root.Descendants("Archives").Elements("Headline").Elements("Para")
where r.SatisfiesCriteria(searchCriteria)
select r;
searchCritera
,并以解析后的格式存储它。(例如,您可以将其转换为后缀符号)。这是很容易的,你可以用它。出于您的目的或,AND将是运算符,PwC等将是操作数。作为解析的一部分,括号将被删除r.Value.Contains
好吧,你可能猜不到这是一个直截了当的问题,但同时它也不是一个看起来那么难的问题 您可以执行以下几个步骤来获得所需:
XElement
上编写一个扩展方法,该方法返回true并将搜索条件作为输入。然后您将能够使用
var selectedBook = from r in
document.Root.Descendants("Archives").Elements("Headline").Elements("Para")
where r.SatisfiesCriteria(searchCriteria)
select r;
searchCritera
,并以解析后的格式存储它。(例如,您可以将其转换为后缀符号)。这是很容易的,你可以用它。出于您的目的或,AND将是运算符,PwC等将是操作数。作为解析的一部分,括号将被删除r.Value.Contains
这似乎是一个很好的场景这似乎是一个很好的场景只要使用
bool
而不是string
?或者是否使用其他条件?您将如何使用此搜索字符串?要过滤datatable、dataview、sql查询?字符串从何而来?人们从何而来?只需使用bool
而不是string
?或者是否使用其他条件?您将如何使用此搜索字符串?要过滤datatable、dataview、sql查询?字符串从何而来?人们从何而来?我认为这对于XML是不可能的…我在阅读动态LINQ示例时读到了一些东西
var selectedBook = from r in
document.Root.Descendants("Archives").Elements("Headline").Elements("Para")
where r.SatisfiesCriteria(searchCriteria)
select r;