[英]How do I correctly use .OrderBy() in this scenario
我有界面
public interface IStoreItem
{
decimal Price { get; }
}
以及实现它的类。
public class ProductShell : IStoreItem
{
EFDbContext repository = new EFDbContext();
public int ShellID { get; set; }
public bool? Published { get; set; }
public decimal Price { get { return repository.ShellMembers.Where(x => x.ShellID == ShellID).Select(x => x.Product.ListPrice).Sum(); } }
}
价格设置正确,但是当我尝试通过升序(默认)来执行OrderBy时,我看不到列表中的任何更改,并且物料仍保持旧位置。 作为设置了Price属性的ProductShell对象,仍然按从高到低的顺序排列,反之亦然。
List<IStoreItem> StoreItems = new List<IStoreItem>();
StoreItems.AddRange(repository.ProductShells.Where(x => x.Published != null));
StoreItems.OrderBy(x => x.Price);
.OrderBy
创建一个新序列。 您应该在此处使用List.Sort
。 或在添加到列表之前对其进行排序:
List<IStoreItem> StoreItems = repository.ProductShells
.Where(x => x.Published != null)
.OrderBy(x => x.Price)
.ToList<IStoreItem>();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.