String 从字符串执行linq queryusing Where子句

String 从字符串执行linq queryusing Where子句,string,linq,c#-4.0,datatable,where-clause,String,Linq,C# 4.0,Datatable,Where Clause,大家好,我需要使用linq在C中查询数据表 我的场景是,我需要使用Linq过滤数据表中的数据 如果单个条件表示我的查询正在使用以下查询工作 EnumerablerRowCollection查询=来自中的联系人 可计算的 其中contact[FirstName].ToString.StartsWithSearchText选择contact 它显示所需的数据和良好的工作状态。如果有多个条件,则意味着我需要动态添加&&运算符,并在查询中添加条件,因为筛选可能会动态更改 在得到字符串中的条件后,我得到如

大家好,我需要使用linq在C中查询数据表

我的场景是,我需要使用Linq过滤数据表中的数据

如果单个条件表示我的查询正在使用以下查询工作

EnumerablerRowCollection查询=来自中的联系人 可计算的 其中contact[FirstName].ToString.StartsWithSearchText选择contact

它显示所需的数据和良好的工作状态。如果有多个条件,则意味着我需要动态添加&&运算符,并在查询中添加条件,因为筛选可能会动态更改

在得到字符串中的条件后,我得到如下结果

联系人[FirstName]。ToString.ToLower.ContainsMani.ToLower&& 联系人[姓氏].ToString.ToLower.StartThiths.ToLower&& 联系[电子邮件地址].ToString.ToLower.Containsmani.ToLower

并将其存储在变量queryString中

现在我需要从字符串执行linq查询

EnumerablerRowCollection查询=来自中的联系人 dtContacts.aQueryString选择contact时可计算


请给我一个在linq查询中从字符串执行where子句的解决方案

我认为这样从字符串执行linq的where子句是不可能的。由于只希望在where子句中添加&&criteria,因此可以使用扩展方法链样式以以下方式动态添加条件:

EnumerableRowCollection query = from contact in dtContacts.AsEnumerable() where contact["FirstName"].ToString().StartsWith(SearchText) select contact;

if(!string.IsNullOrEmpty(Mani))
{
    query = query.Where(contact => contact[LastName].ToString().ToLower().Startswith(S.ToLower()))
}
if(!string.IsNullOrEmpty(S))
{
    query = query.Where(contact => contact[LastName].ToString().ToLower().Startswith(S.ToLower()))
}
if(!string.IsNullOrEmpty(mani))
{
    query = query.Where(contact => contact[EmailAddress].ToString().ToLower().Contains(mani.ToLower()))
}
也可以使用linq语法实现同样的功能,例如:

EnumerableRowCollection query = from contact in dtContacts.AsEnumerable() where contact["FirstName"].ToString().StartsWith(SearchText) select contact;
if(!string.IsNullOrEmpty(Mani))
{
    query = select contact from query where contact[LastName].ToString().ToLower().Startswith(S.ToLower());
}

如果where子句中的所有条件都将使用AND[&&&]运算符not或[| |]]进行追加,则可以使用扩展方法链语法来动态添加条件Y是的,我也这么认为,但由于条件字段不同,许多firstname、LastName、EmailAddress、PhoneNumber以及搜索类型都是多个内容,Startswith,等于用户输入的关键字。我需要满足所有条件并显示结果。为此,我希望将where子句存储在一个字符串变量中,并像在SQL中一样在查询中执行它。是否有任何可能的方法使用where子句在字符串中执行Linq查询。请告诉我这方面的解决方案。我认为能够构建这样一个where子句字符串的应用程序的一部分必须能够将where子句构建为linq或扩展方法,而不是字符串。无论如何,我很确定您需要使用不同的方法来执行,我仍然认为在LINQ中不可能执行字符串,因为ClauseLQ是强类型对象,SQL不是,它是纯字符串。所以你不能把LINQ和SQL进行比较。关于你的信息,我想让你看看这个。我需要的就是这样。看到了吗?他正在通过严格的where条款谢谢你的时间和努力,哈。正如我所说的,所有的数据都是动态的,所以我不能完全按照你在回答中所说的那样解析。此外,我必须满足可能因情况不同而有所不同的条件。因此,我需要一个解决方案来使用where子句执行查询,where子句由string给出。