如何使用c#获取foreach循环中每个项的基线元素?
我不知道如何确切地问这个问题,但问题是: 我得到了一个列表,我按子类型ID(Key=1或Key=2)进行筛选,如下所示: 正如你所看到的,“Key=1”有4个对象:0、1、2和3。所有这些对象都具有相同的TypeDescription。如何在该for each循环中实现此元素“TypeDescription”一次如何使用c#获取foreach循环中每个项的基线元素?,c#,.net,list,foreach,iterator,C#,.net,List,Foreach,Iterator,我不知道如何确切地问这个问题,但问题是: 我得到了一个列表,我按子类型ID(Key=1或Key=2)进行筛选,如下所示: 正如你所看到的,“Key=1”有4个对象:0、1、2和3。所有这些对象都具有相同的TypeDescription。如何在该for each循环中实现此元素“TypeDescription”一次 提前感谢!:) 这里有几个选项: 按两个参数对元素数组进行分组: var res=Reports.GroupBy(u=>new{u.SubTypeId,u.TypeDescripti
提前感谢!:) 这里有几个选项:
var res=Reports.GroupBy(u=>new{u.SubTypeId,u.TypeDescription})
.选择(r=>new
{
r、 Key,//这里的Key由两个元素组成
items=r.Select(i=>new
{
i、 文档路径,
i、 身份证,
i、 名字,
i、 描述,,
i、 类型ID
})
}).ToList();
因此,在本例中,您将有一组subsubfid
和TypeDescription
项,其中包含所需的所有其他元素的集合
var res2=Reports.GroupBy(u=>u.subscriptid)
.Select(r=>r.ToList()
.GroupBy(r=>r.TypeDescription)
.选择(项目=>新建){
项目.关键,
项目=项目。选择(i=>new
{
i、 文档路径,
i、 身份证,
i、 名字,
i、 描述,,
i、 类型ID
})
})).ToList();
在本例中,您将有更多的嵌套,但数据输出可能会更接近您最初请求的内容
一些建议:
foreach
collections输入部分中进行了数组分组。相反,在循环之前,将数组操作指定给单独的变量类
模型,而不是匿名对象。注意:在上面的例子中,我使用匿名对象只是为了演示
嗯<代码>项目是一个集合。您需要为集合编制索引。第一个对象是索引0,下一个对象是1,等等。
GroupBy
的结果本身是可枚举的(包含组中的所有项)。这样你就可以绕过去了foreach(项中的var子项){…}
。使用.ToArray()
将其转换为索引的collectionitem.FirstOrDefault().TypeDescription