c# - System.Linq.Dynamic 错误 类型 'StringComparison' 中不存在属性或字段 'Person'

标签 c# linq dynamic dynamic-linq

我正在使用 System.Linq.Dynamic(Install-Package System.Linq.Dynamic),并且我尝试将 IndexOf 重载与 StringComparison 结合使用。但是,它的行为就像尝试将 StringComparison 运算符应用于 Person 对象。我是否正确编写了查询?

try
{
     IEnumerable<Person> dynamicLinqItems = people.Where("(FirstName.IndexOf(@0, StringComparison.OrdinalIgnoreCase) >= 0)", "T");
}
catch (Exception exception)
{
    Console.WriteLine(exception);
}

错误信息

No property or field 'StringComparison' exists in type 'Person'

对象

public class Person
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public DateTime Birthday { get; set; }

    public int Age
    {
        get
        {
            DateTime now = DateTime.Today;
            int age = now.Year - Birthday.Year;
            if (now < Birthday.AddYears(age))
            {
                age--;
            }
            return age;
        }
    }
}

最佳答案

使用枚举可能会出现问题:How to use Enums with Dynamic Linq?

尝试以下操作:

IEnumerable<Person> dynamicLinqItems = people.Where("(FirstName.IndexOf(@0, @1) >= 0)", "T", StringComparison.OrdinalIgnoreCase);

关于c# - System.Linq.Dynamic 错误 类型 'StringComparison' 中不存在属性或字段 'Person',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36480853/

相关文章:

c# - 在 C# 应用程序中接收操作系统级别的按键事件

c# - 从 CF 的工具箱中隐藏 UserControl

c# - 在删除项目后添加成功消息,在 MVC4 中

c# - 具有 if else 条件的 Linq GroupBy 对象

c# - 如何在字符串上添加 `.Take()` 并在末尾获取字符串?

ios - Storyboard上 UITableViewController 的动态原型(prototype)单元格高度大小

c# - 这两种删除事件处理程序的方法有区别吗?

c# - 使用 linq 返回带有 list<object> 成员的对象

javascript - JavaScript 数组的动态条件

javascript - 动态表完全加载后调用 JS 函数