迭代一个对象并使用C#mvc创建一个新对象
如何在C#中循环一个对象并创建一个新对象 我有一个视图模型,例如:迭代一个对象并使用C#mvc创建一个新对象,c#,linq,asp.net-mvc-viewmodel,C#,Linq,Asp.net Mvc Viewmodel,如何在C#中循环一个对象并创建一个新对象 我有一个视图模型,例如: pViewModel { public itemFullName {get;set;} public Item Item{get;set;} } public Item{ public int itemId{get;set;} } 我想在找到匹配的全名但不同的id后创建一个新对象 因此,我的新对象将有一个itemFullName、item.itemid(上一个列表中所有项目的管道分隔值)的列表 任何帮助都会很棒。 谢谢听起来
pViewModel {
public itemFullName {get;set;}
public Item Item{get;set;}
}
public Item{
public int itemId{get;set;}
}
我想在找到匹配的全名但不同的id后创建一个新对象
因此,我的新对象将有一个itemFullName、item.itemid(上一个列表中所有项目的管道分隔值)的列表
任何帮助都会很棒。
谢谢听起来您想按itemFullName对模型列表进行分组。下面介绍如何创建匿名类型的对象
var itemsAndIds = list
.GroupBy(m => m.itemFullName, m => m.Item.itemId)
.Select(g => new {ItemFullName = g.Key, ItemIds = string.Join("|", g)})
我很难理解你的要求。您能提供一些示例输入和预期输出吗?可能使用JSON符号或其他什么?我有一个列表,其中有237个项,具有重复的itemfullname,但具有不同的item.itemid集。我想得到一个具有重复itemfullname和item.itemid(重复)的新列表。这很好。但是如果viewmodel中有其他属性,比如“itemAddress”,则为itemCountry。是否有方法将这些附加到现有的ItemsAndId对象?是的,有方法。例如,您可以为这些对象的匿名对象添加新属性。您可能希望将GroupBy的第二个参数更改为
m=>m.Item
,然后选择这些差异部分作为select的一部分(例如g.select(i=>i.itemAddress)
)