C# - 条件列表中的动态linq

5 c# linq dynamic

我有两节课:

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; }
}
Run Code Online (Sandbox Code Playgroud)

还有一个例子:

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"
            }
        }
    }
};
Run Code Online (Sandbox Code Playgroud)

我使用System.Dynamic.Linq库来过滤我的数组:

var filter = c.Where("FirstName == \"FirstName1\"").Select(x => x).ToList();

我创建了一个类condition和一个实例:

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"
   }
};
Run Code Online (Sandbox Code Playgroud)

我想创建多个条款Where从该List<Condition>

这该怎么做 ?

nik*_*ias 1

据我所知,这只是在您的列表上执行此操作的一个简单案例?除非我错过了什么?

 var query = f.Where(x => x.propertyName == "FirstName" && x.propertyValue == "FirstName1");
Run Code Online (Sandbox Code Playgroud)