Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
迭代一个对象并使用C#mvc创建一个新对象_C#_Linq_Asp.net Mvc Viewmodel - Fatal编程技术网

迭代一个对象并使用C#mvc创建一个新对象

迭代一个对象并使用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(上一个列表中所有项目的管道分隔值)的列表 任何帮助都会很棒。 谢谢听起来

如何在C#中循环一个对象并创建一个新对象 我有一个视图模型,例如:

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)