一起显示具有相同 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 的字段[重复]的主要内容,如果未能解决你的问题,请参考以下文章

sql 显示重复记录数

MS Access 查询:合并特定字段列中具有相同数据的行

XCode 在模拟器选择中使用 GUID 而不是 iOS 版本号

2个具有相同最大宽度的div显示不同的宽度[重复]

SQL - 选择两列中具有相同值的行

php函数以获取数据,将具有通用字段名称的多个表连接起来并显示输出[重复]