【问题标题】:Order by list in complex object在复杂对象中按列表排序
【发布时间】:2016-09-27 09:11:24
【问题描述】:

我有两门课:

public class Customer
{
    public string FirstName { get; set; }

    public string LastName { get; set; }

    public List<Product> Product { get; set; }
}

public class Product
{
    public int ProductNumber { get; set; }

    public string ProductColor { get; set; }
}

还有一个例子:

Customer Cus = new Customer()
{
    FirstName = "FirstName1",
    LastName = "LastName1",
    Product = new List<Product>
    {
        new Product()
        {
            ProductColor = "ProductColor12",
            ProductNumber = 12
        },
        new Product()
        {
            ProductColor = "ProductColor11",
            ProductNumber = 11
        }
    }
};

我想对产品列表进行排序并获取一个客户,其产品列表按ProductNumber排序

如何做到这一点?

【问题讨论】:

标签: c# linq sorting


【解决方案1】:
Cus.Product = Cus.Product.OrderBy(p => p.ProductNumber).ToList();

【讨论】:

    【解决方案2】:

    产品类应该在 IComparable 接口中实现 CompareTo 方法

    【讨论】:

      【解决方案3】:

      试试这个

      using System;
      using System.Collections.Generic;
      using System.Linq;
      using System.Text;
      
      
      namespace ConsoleApplication2
      {
          class Program
          {
              static void Main(string[] args)
              {
                  List<Customer> customers = new List<Customer>();
                  Customer Cus = new Customer()
                  {
                      FirstName = "FirstName1",
                      LastName = "LastName1",
                      Product = new List<Product> {
                          new Product()
                          {
                              ProductColor = "ProductColor12",
                              ProductNumber = 12
                          },
                          new Product()
                          {
                              ProductColor = "ProductColor11",
                              ProductNumber = 11
                          }
                      }
                  };
                  customers.Add(Cus);
      
                  var results = customers.OrderBy(x => x.LastName).ThenBy(y => y.FirstName).Select(z => z.Product.OrderBy(a => a.ProductNumber)).ToList();
      
              }
          }
          public class Customer
          {
              public string FirstName { get; set; }
      
              public string LastName { get; set; }
      
              public List<Product> Product { get; set; }
          }
      
          public class Product
          {
              public int ProductNumber { get; set; }
      
              public string ProductColor { get; set; }
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-10-07
        • 1970-01-01
        • 2017-08-05
        • 2022-01-08
        • 1970-01-01
        • 2012-11-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多