繁体   English   中英

按订单号和创建日期对列表进行排序和分组

[英]Sorting and grouping a list by order number and created date

我坚持如何将列表分类为具有不同结构的新列表,如果有人可以帮助我解决这个问题。

先感谢您。

列表类型

public class PartOrders
{
    public string orderNumber{ get; set; }
    public DateTime createdDate { get; set; }
    public string description { get; set; }
    public string name{ get; set; }
    public DateTime performedDateTime { get; set; }
    public Category category { get; set; }
}

public class Category 
{
    public string type { get; set; }
    public string Name { get; set; }
}

列表中有许多具有相同 orderNumber 和 createdDate 的项目

我的问题是如何使用以下类型制作新列表:

public class PartOrders
{
    public string orderNumber { get; set; }
    public DateTime createdDate { get; set; }
    public List<Data> orderDate { get; set; }
} 

public class Data
{
    public string description { get; set; }
    public string name { get; set; }
    public DateTime performedDateTime { get; set; }
    public Category category { get; set; }
}

我感谢您的帮助

我尝试用 readinonal 方式循环 foreach 和 if 条件,但它非常复杂和缓慢。

结果需要采用以下格式:

看来您的“列表”并不是真正的列表,而是数据对象或结构。 我要做的第一件事是为它们必须实现的两个对象创建一个接口。 然后你就可以

List1<ICommonInterface>.Concat(List2<ICommonInterface>).OrderBy(etc..).ThenBy(etc..)

两个都。

您最好像这样更改 RestOfData,并使用List<RestOfData>替换OrderedList

 public class RestOfData
{
            public string id { get; set; }
            public DateTime createdDate { get; set; }
            public string descriptionA { get; set; }
            public string name{ get; set; }
            public DateTime performedDateTime { get; set; }
            public Gender genderA{ get; set; }
            public string codeData{ get; set; }
            public string descriptionB { get; set; }
            public string orderNumber { get; set; }
            public float total{ get; set; }
            public Gender genderB { get; set; }
}

然后使用:

List<List1> l = ...;
List<List2> l1 = ...;
List<RestOfData> datalist = (from a in l
                          join b in l1 on a.id equals b.id
                          select new RestOfData()
                          {
                              id=a.id,
                              createdDate=a.createdDate,
                              descriptionA=a.descriptionA,
                              name=a.name,
                              performedDateTime=a.performedDateTime,
                              genderA=a.genderA,
                              codeData=b.codeData,
                              descriptionB=b.descriptionB,
                              orderNumber=b.orderNumber,
                              total=b.total,
                              genderB=b.genderB
                          }).OrderBy(xxx).ToList();

暂无
暂无

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

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