我有一个实体:
public class Component
{
public Guid Id { get; set; }
public string Name { get; set; }
public ProductType Type { get; set; }
}
ProductType
public enum ProductType
{
Harddrive = 1,
GraphicCard,
ComputerCase,
}
我正在尝试获取产品的列表,该列表在单个LINQ中包含15个随机项(每个ProductType 5个)。
同一基本类的计算机箱,图形卡和硬盘驱动器继承
现在我有这样的东西:
var response = db.Components
.Select(x => new Product
{
Id = x.Id,
Name = x.Name,
Type = x.Type,
}).ToList();
但是我不知道如何实现自己的需求。有人可以帮我吗?
答案 0 :(得分:0)
使用相同的APP_ENV=Development bazel run //myproject:app
组Components
。从组的结果集合中选择组中的第一个ProductType
。从该结果中提取前5个项目。
Component
当然,如果您真的想要适当的随机数,则必须将所有var result = myComponents. // take the collection of Components
.GroupBy(component => component.Type) // group this into groups of components with same Type
.Select(group => group.FirstOrDefault()) // from every group take the first element
.Take(5) // take only the first five
个组提取到本地内存中,并使用Component
从每个选定的组中提取随机组和随机元素>