通过LINQ对复杂对象进行排序
我有一个复杂的对象:通过LINQ对复杂对象进行排序,linq,sorting,Linq,Sorting,我有一个复杂的对象: + Client + Products + Types | TypeId | ManagerCode | TypeName .... 单个客户机将与他们购买的产品集合相关联,每个产品都将有一个与其关联的类型集合 我需要在两个属性上对“类型”进行排序——ManagerCode和TypeName 例如:client.Prod
+ Client
+ Products
+ Types
| TypeId
| ManagerCode
| TypeName
....
单个客户机将与他们购买的产品集合相关联,每个产品都将有一个与其关联的类型集合
我需要在两个属性上对“类型”进行排序——ManagerCode和TypeName
例如:client.Products.ForEach(o=>o.Types.OrderBy(o1=>o1.BaseType.ManagerCode))代码>
好吧,当我这样做时,一旦返回到前端,列表实际上不会排序。它保持原始的排序顺序。我做错了什么?OrderBy
不会取代原来的收藏;它返回一个新排序的集合
假设Types
是一个列表,您需要
client.Products.ForEach(o =>
o.Types = o.Types.OrderBy(o1 => o1.BaseType.ManagerCode).ToList());
OrderBy
不会替换原始集合;它返回一个新排序的集合
假设Types
是一个列表,您需要
client.Products.ForEach(o =>
o.Types = o.Types.OrderBy(o1 => o1.BaseType.ManagerCode).ToList());
另一种解决方案是使用排序
方法
client.Products.ForEach(o => o.Types.Sort(
(x, y) => string.Compare(x.BaseType.ManagerCode, y.BaseType.ManagerCode));
另一种解决方案是使用排序
方法
client.Products.ForEach(o => o.Types.Sort(
(x, y) => string.Compare(x.BaseType.ManagerCode, y.BaseType.ManagerCode));
我一直在寻找这个-它没有混合LINQ和反LINQ,可能在适当的位置排序或类似的东西-但我找不到。我一直在寻找这个-它没有混合LINQ和反LINQ,可能在适当的位置排序或类似的东西-但我找不到它。