简体   繁体   English

在复杂对象中按列表排序

[英]Order by list in complex object

I have two classes : 我有两节课:

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; }
}

And one instance : 还有一个实例:

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

I want to sort the Product List and get a Customer with a list of products sorted by ProductNumber 我想对产品列表进行排序,并获得一个具有按ProductNumber排序的产品列表的客户

How to do this ? 这个怎么做 ?

Cus.Product = Cus.Product.OrderBy(p => p.ProductNumber).ToList();

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

try this 尝试这个

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; }
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM