一起显示具有相同 GUID 的字段[重复]
Posted
技术标签:
【中文标题】一起显示具有相同 GUID 的字段[重复]【英文标题】:Display fields with the same GUIDs together [duplicate] 【发布时间】:2019-02-14 13:40:02 【问题描述】:我有一个 ProductDetailDTO 类型的列表。
List<ProductDetailDTO> productDTOs;
public class ProductDetailDTO
public int ProductId get; set;
public string Name get; set;
public string Category get; set;
public byte[] Image get; set;
public string Description get; set;
public string Brand get; set;
public string GUID get; set;
public string VariantName get; set;
public string VariantValue get; set;
public decimal Price get; set;
我已经使用 linq 将数据绑定到列表。
var productDetails = (from product in ekartEntities.Products
join productImage in ekartEntities.ProductImages on product.ProductId equals productImage.ProductId
join category in ekartEntities.ProductCategories on product.Category equals category.CategoryId
join mapping in ekartEntities.ProductVariantMappings on product.ProductId equals mapping.ProductId
join variant in ekartEntities.ProductVariants on mapping.ProductVariantId equals variant.ProductVariantId
join inventory in ekartEntities.Inventories on mapping.GUID equals inventory.Guid
where product.ProductId == productDetailDTO.ProductId
select new ProductDetailDTO()
ProductId = product.ProductId,
Name = product.Name,
Category = category.Name,
Description = product.Description,
Brand = product.Brand,
Image = productImage.Image,
GUID = mapping.GUID.ToString(),
VariantName = variant.Name,
VariantValue = mapping.Value,
Price = inventory.Price
).ToList();
现在,我想同时显示具有相同 GUID 的所有变体(VariantName 和 VariantValue)。我怎样才能做到这一点?
【问题讨论】:
你是如何将数据绑定到列表的? “一起显示字段”是什么意思? @UdaraKasun 使用 linq。更新了帖子! @LasseVågsætherKarlsen 我想根据同一列表的列显示列表的列。 您是否尝试按 GUI 分组 【参考方案1】:您可以使用分组方式
group p by p.GUID into g
select new Id = g.Key, ProductDetail = g.ToList()).ToList();
如果您在分组依据之前有表格,那么您可以在组本身中添加新对象
group new p.xyz, n.xyz
by new p.GUID into g
否则使用 let 将中间对象保存在对象中并对其进行分组
【讨论】:
【参考方案2】:您可以像这样使用 GroupBy 和 Select:
var variants = productDTOs
.GroupBy(k => k.GUID)
.Select(v => v
.Select(variant => new
variant.VariantName,
variant.VariantValue
));
【讨论】:
我可以将此变体与我现有的 productDTO 列表结合起来吗?或者我可以在 productDTOs 从数据库中检索其他值时进行分组吗? 两者都可以。以上是关于一起显示具有相同 GUID 的字段[重复]的主要内容,如果未能解决你的问题,请参考以下文章