我有一个项目清单:清单项目; 每个Item都有一个属性Item#,LongID和InventoyBranchItem。 每个InventoyBranchItem都有Item#,Item Quantity和BranchCode。
物品
Item # Long ID ItemInventoryLoc
123456 ANBCDDFD 1
999999 BBBBBBBB 1
777777 ATSDFDDF 1
ItemInventoryLoc
Item# Quantity BranchCode
123456 6 T1
999999 8 T3
777777 2 T2
我需要按BranchCode排序,然后按LongID排序。我在使用lambda时遇到了麻烦。
List<Item> sortedList = items.OrderBy(x => x.ItemInventory....)
.thenBy(x => x.LongID).ToList();
我不知道使用什么语法来访问BranchCode。
答案 0 :(得分:1)
如果您确定Item
始终与InventoryBrachItem
相关,那么我想您可以这样做以获得BranchCode
中的OrderBy
:
var sortedList = items.OrderBy(x => x.InventoryBrachItems.FirstOrDefault().BranchCode)
.ThenBy(x=> x.LongItemNumber);
但是你需要解释更多你订购商品的逻辑,因为它可以与多个InventoryBranchItem
答案 1 :(得分:0)
我假设您有两个列表:项目 ItemInventoryLoc
您应该加入两个列表,然后对结果进行排序
var qry = from items in itemsList join lockitems in ItemInventoryLocList
on items.ItemNumber equals lockitems.ItemNumber
orderby lockitems.BranchCode, items.LongItemNumber
select new {
items.LongItemNumber,
lockitems.BranchCode,
lockitems.Quantity
};
中的工作样本