场景是:
我有一个产品列表,可以分为几类。这是产品型号:
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public int CategoryId { get; set; }
public virtual Category Category { get; set; }
}
这是类别模型:
public class Category
{
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<Product> Products { get; set; }
}
虚拟数据:
类: 一个 乙 C d
我想要的是什么:
我想列出所有产品,但属于 C类别的产品列在列表顶部,其余部分列在原样列表的底部。
这对此有什么影响?感谢
答案 0 :(得分:1)
我亲自这样做......
var preferredCategory = "CategoryC";
var result = Products.OrderBy(x => x.Category.Name == preferredCategory ? 0 : 1).
ThenBy(x => <Your previous ordering>);
答案 1 :(得分:0)
快速执行此操作的方法是使用具有任意值的OrderBy
。
var products = Enumerable.Empty<Product>();
var sorted1 = products.OrderByDescending(p => p.Category.Name == "C");
var sorted2 = from p in products
orderby p.Category.Name == "C" descending
select p;