Mam dwie klasy:C# - Dynamic LINQ z listy stan
public class Customer
{
public string FirstName { get; set; }
public string LastName { get; set; }
public List<Product> Product { get; set; }
}
public class Product
{
public string ProductNumber { get; set; }
public string ProductColor { get; set; }
}
I jedna instancja:
Customer[] c = new Customer[]
{
new Customer()
{
FirstName = "FirstName1",
LastName = "LastName1",
Product = new List<Product>
{
new Product()
{
ProductColor = "ProductColor1",
ProductNumber = "11"
}
}
},
new Customer()
{
FirstName = "FirstName2",
LastName = "LastName2",
Product = new List<Product>
{
new Product()
{
ProductColor = "ProductColor2",
ProductNumber = "12"
}
}
}
};
używam System.Dynamic.Linq
biblioteki do filtrowania moje tablicy:
var filter = c.Where("FirstName == \"FirstName1\"").Select(x => x).ToList();
Tworzę klasę condition
i jedną instancję:
public class condition
{
public string propertyName { get; set; }
public string propertyValue { get; set; }
}
List<condition> f = new List<condition>
{
new condition()
{
propertyName = "FirstName",
propertyValue = "FirstName1"
},
new condition()
{
propertyName = "Product.ProductColor",
propertyValue = "11"
}
};
Chcę utworzyć wiele klauzuli Where
z tego List<Condition>
Jak to zrobić?
Czy możesz pokazać kod, w którym aktualnie stosuje się jeden warunek do listy? Powinien być tak prosty jak 'var toFilter = sourceCollection.AsEnumerable(); foreach (warunek var w warunkach) {toFilter = toFilter.Where (warunek); } '. – CodeCaster
Czy Twój łańcuch znaków jest zgodny z Twoimi umowami? –
Nie, wszystkie właściwości nie są ciągiem znaków –