【发布时间】:2019-07-18 10:20:51
【问题描述】:
我有一个对象的对象,其中一个属性可以具有重复值我正在尝试找到一种算法来循环遍历该对象并创建一个具有按重复值分组的新对象列表。
我如何遍历一个对象并在 C# 中创建一个新对象我有一个视图模型,例如:
pViewModel {
public itemFullName {get;set;}
public Item Item{get;set;}
public string itemAddress {get;set;}
public string itemCountry {get;set;}
public string addressId {get;set;}
}
public Item{
public int itemId{get;set;}
}
我想在找到匹配的全名但不同的 id 后创建一个新对象,因此我的新对象将包含 itemFullName、item.itemid(上一个列表中所有项目的管道分隔值)、itemaddress、itemCountry 的列表。
任何帮助都会很棒。谢谢
有人指出了这一点
var itemsAndIds = list
.GroupBy(m => m.itemFullName, m => m.Item.itemId)
.Select(g => new {ItemFullName = g.Key, ItemIds = string.Join("|", g)})
但现在我需要添加到这个对象的新属性
【问题讨论】:
-
对于分组的 itemid,ItemAddress 和 ItemCountry 是否相同或不同。如果不同,那么应该如何在新对象中选择它们?
-
所有重复值都相同
-
如果有一个与上述列表不同的属性,例如。 addressId ,如何以逗号分隔值在分组列表中返回?
标签: c# asp.net asp.net-mvc linq grouping