C# 如何对对象中的对象值列表进行排序

C# 如何对对象中的对象值列表进行排序,c#,entity-framework,linq-to-entities,C#,Entity Framework,Linq To Entities,这是我用来获取具有特定id的每个项目的项目和项目详细信息的查询 public class ItemModel { public int ItemSeq{get;set} public string ItemName{get;set;} public double? Amount{get;set;} } public class SampleModel { public string Id{ get; set; } public string Code{ get

这是我用来获取具有特定id的每个项目的项目和项目详细信息的查询

public class ItemModel 
{
   public int ItemSeq{get;set}
   public string ItemName{get;set;}
   public double? Amount{get;set;}
}
public class SampleModel
{
    public string Id{ get; set; }
    public string Code{ get; set; }
    public List<ItemModel> Items{ get; set; }
}

public List<SampleModel> GetItems(string id)
{

    var items= _context.ItemTable.Where(t => t.Id== id).ToList<SampleModel>();
    return list;
}
ItemDetailTable

Id    ItemSeq    ItemName    Amount
1     1          ABC1        200
1     2          ABC2        129
1     3          ABC3        549
2     1          DEF1        265
2     2          DEf2        970
我想要的是当
Id
的值为1时,返回值为

Id:   1
Code: Code 1
Items:[
    0:{
     ItemSeq:  2
     ItemName: ABC2
     Amount:   129
    }
   1:{
     ItemSeq:  1
     ItemName: ABC1
     Amount:   200
    },
   1:{
     ItemSeq:  3
     ItemName: ABC3
     Amount:   549
    }
] 

通过将
id
参数传递给
GetItems
方法,您需要返回
ItemModel
的排序列表

public List<ItemModel> GetItems(string id)
{
    var items = _context.SampleTable.Where(t => t.Id == id).SelectMany(x => x.Items).Where(p => p.Amount != null).OrderBy(x => x.Amount).ToList();
    return items.ToList();
}
编辑2:

public ItemTable GetItems(string id)
{
    var result = (from i in _context.ItemTable
                  where i.Id == id
                  let sorting = i.Items.Where(x => x.Id == id).Where(x => x.Amount != null).OrderBy(x => x.Amount).ToList()
                  select new ItemTable
                  {
                      Id = i.Id,
                      Code = i.Code,
                      Items = sorting
                  }).FirstOrDefault();   //Or => SingleOrDefault

    return result;
}

通过将
id
参数传递给
GetItems
方法,您需要返回
ItemModel
的排序列表

public List<ItemModel> GetItems(string id)
{
    var items = _context.SampleTable.Where(t => t.Id == id).SelectMany(x => x.Items).Where(p => p.Amount != null).OrderBy(x => x.Amount).ToList();
    return items.ToList();
}
编辑2:

public ItemTable GetItems(string id)
{
    var result = (from i in _context.ItemTable
                  where i.Id == id
                  let sorting = i.Items.Where(x => x.Id == id).Where(x => x.Amount != null).OrderBy(x => x.Amount).ToList()
                  select new ItemTable
                  {
                      Id = i.Id,
                      Code = i.Code,
                      Items = sorting
                  }).FirstOrDefault();   //Or => SingleOrDefault

    return result;
}

这里的“项目详情”是什么?根据
ItemModel
public double中的金额值?Amount{get;set;}
Amount是SampleModel中嵌套集合的属性。是否要按其嵌套集合中的最大数量订购SampleModel?按总数算?请展示一些示例数据和所需输出,也请展示您尝试过的内容already@hana_wujira,上次编辑问题中
ItemModel
SampleModel
的角色后。请编辑到问题?@GiladGreen我已经更新了问题这里的“项目详细信息”是什么?通过
ItemModel
public double中的金额值?Amount{get;set;}
Amount是SampleModel中嵌套集合的属性。是否要按其嵌套集合中的最大数量订购SampleModel?按总数算?请展示一些示例数据和所需输出,也请展示您尝试过的内容already@hana_wujira,上次编辑问题中
ItemModel
SampleModel
的角色后。请编辑问题?@GiladGreen我已经更新了问题,非常感谢你的帮助。但我想知道是否还有其他方法不包括进行两次查询和合并值?查看编辑2:答案中的部分:)非常感谢,它很有效。但我想知道是否还有其他方法不包括进行两次查询和合并值?查看编辑2:答案中的部分:)