系统.林克.动态错误 类型 'Person' 中不存在属性或字段'StringComparison'



我正在使用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;
        }
    }
}

使用枚举可能有问题:如何将枚举与Dynamic Linq一起使用?

尝试以下操作:

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

最新更新