[英]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.