gpt4 book ai didi

c# - 如果类型不同(如 List 和 List),是否可以连接两个列表?

转载 作者:太空宇宙 更新时间:2023-11-03 18:27:23 24 4
gpt4 key购买 nike

我有两个不同的类,如下所示:

public class ProductDto : IDto
{
public int Parentproductid { get; set; }
public string Parentproductnumber { get; set; }
public int Supplierid { get; set; }
//More properties
}

public class OrderItemsDto : IDto
{
public int Poid { get; set; }
public System.DateTime Createddate { get; set; }
public int Parentproductid { get; set; }
public int Variationid { get; set; }
public System.DateTime Deliverydate { get; set; }
//More properties
}

我需要做的基本上就是加入List<OrderItemsDto>List<ProductDto>在 parentproductid 上(就像它们是数据库表一样)并生成另一个列表。

我试过使用 Union如下所示:

List<ProductDto> productParents = productManager.getList();
List<OrderItemsDto> orderItemsList = ordermanager.getList();
gvPurchaseOrderItems.DataSource = orderItemsList.Select(o => o.Parentproductid).Union(productParents.Select(pp => pp.parentproductid));

但这只给我 List<int> 的结果在两个列表中都找到了 parentproductids,我需要一些具有来自两个类的属性(在上述情况下为列)的东西。而且我找不到如何使用 Select 扩展方法选择多个属性(我是初学者)

我知道我可以创建一个新类并手动映射属性,但我真的很好奇如何使用 lambda 表达式或 linq 执行此操作。这可能吗,如果你能给我指明方向,我将不胜感激。谢谢。

最佳答案

您可以使用Select 为您的查询创建匿名类型:

orderItemsList.Select(o => new { o.Parentproductid, o.Variationid, /* etc */ })

因此,在您的情况下:

gvPurchaseOrderItems.DataSource =  orderItemsList
.Select(o => new { o.Parentproductid, o.Variationid, /* etc */ })
.Union(productParents
.Select(pp => new { pp.Parentproductid, pp.Variationid, /* etc */ }));

关于c# - 如果类型不同(如 List<T> 和 List<G>),是否可以连接两个列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31320318/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com