Ich verwende System.Linq.Dynamic ( Install-Package System.Linq.Dynamic
) und versuche, die IndexOf-Überladung mit dem StringComparison zu verwenden. Es verhält sich jedoch so, als würde versucht, den StringComparison-Operator auf das Person-Objekt anzuwenden. Schreibe ich die Abfrage richtig?
try
{
IEnumerable<Person> dynamicLinqItems = people.Where("(FirstName.IndexOf(@0, StringComparison.OrdinalIgnoreCase) >= 0)", "T");
}
catch (Exception exception)
{
Console.WriteLine(exception);
}
Fehlermeldung
No property or field 'StringComparison' exists in type 'Person'
Objekt
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;
}
}
}
Möglicherweise liegt ein Problem bei der Verwendung einer Aufzählung vor: Wie werden Aufzählungen mit Dynamic Linq verwendet?
Versuche Folgendes:
IEnumerable<Person> dynamicLinqItems = people.Where("(FirstName.IndexOf(@0, @1) >= 0)", "T", StringComparison.OrdinalIgnoreCase);