繁体   English   中英

在这种情况下,如何正确使用.OrderBy()

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM