این کلاس رو در نظر بگیرید و فرض کنید بانک اطلاعاتی شماست :
public enum Gender
{
Not_Specified = -1,
Male = 0,
Female = 1
}
private class Person
{
public string Name { get; set; }
public string Family { get; set; }
public int Age { get; set; }
public Gender Gender { get; set; }
}
حالا چند نمونه با مقدار از روی اون میسازیم :
List<Person> People = new List<Person>();
People.Add(new Person() { Name = "Shayan", Family = "Firoozi", Gender = Gender.Male, Age = 35 });
People.Add(new Person() { Name = "A", Family = "B", Gender = Gender.Female, Age = 33 });
People.Add(new Person() { Name = "C", Family = "D", Gender = Gender.Female, Age = 18 });
فرض کنید اینها مقادیری هستند که از کاربر گرفته میشن ، که میتونن مقدار داشته باشند یا خالی باشند :
string _filter_name = "Shayan";
string _filter_family = "";
Gender _filter_gender = Gender.Not_Specified;
int filter_age = 35;
به این شکل روی اونا کوئری میزنیم :
List<Person> myList = People.Where(p => _filter_name.Length == 0 || p.Name == _filter_name)
.Where(p => _filter_family.Length == 0 || p.Family == _filter_family)
.Where(p => _filter_gender == Gender.Not_Specified || p.Gender == _filter_gender)
.Where(p => filter_age == 0 || p.Age == filter_age).ToList();