【发布时间】:2021-01-22 17:42:02
【问题描述】:
我是 linq 的新手,所以任何建议都非常有帮助。假设我有一个数据集看起来像
acct dim unit_code
10000 DIMENSION2 100
10000 DIMENSION2 1000
10000 DIMENSION2 1300
10000 DIMENSION2 1400
20000 DIMENSION2 1500
20000 DIMENSION2 200
20000 DIMENSION2 600
20000 DIMENSION2 700
20000 DIMENSION2 800
20000 DIMENSION2 900
10000 DIMENSION3 FGAC
10000 DIMENSION3 FGCP
10000 DIMENSION3 FGCV
10000 DIMENSION3 FGED
20000 DIMENSION3 FGES
20000 DIMENSION3 FGGM
20000 DIMENSION3 FGLD
20000 DIMENSION3 FGNB
20000 DIMENSION3 FGOR
20000 DIMENSION3 FGPM
10000 DIMENSION4 ENDO
20000 DIMENSION4 OTHR
20000 DIMENSION4 POTN
这是我的课
public class RestrictionRule
{
public string acct { get; set; }
public List<dim> dims { get; set; }
}
public class dim
{
public string dim { get; set; }
public List<unit_code> unit_codes { get; set; }
}
public class unit_code
{
public string unit_code{ get; set; }
public string unit_code_description { get; set; }
}
我尝试返回 RestrictionRule 类,所以我开始编写类似的东西
var result = (from a in dataset
group a by new
{
a.acct,
a.dim,
} into b
select new RestrictionRule()
{
acct = b.Key.acct,
dims = b.ToList(),
});
此时,我不确定为什么我有针对“dims = b.ToList(),”。此外,由于 RestrictionRule 类在层次结构中有两个列表(Dim 和 unit_code),请建议我如何正确创建它。提前感谢大家的帮助。
【问题讨论】:
-
以图像形式的示例数据。很好,很容易复制粘贴到 LINQpad...
-
感谢提醒。我只是编辑它,所以它现在不是图像。
-
“我不知道为什么我有异常” - 什么异常? “添加unit_code信息”是什么意思?怎么加?怎么代表?怎么用的?
-
我只是编辑了我的问题,希望对您有所帮助。
-
所以
dims是List<dim>类型(类型是C# 中的键)。b是IGrouping<Tanon1, Tanon2>类型,在ToList之后是List<anon2>。您不能将List<anon2>隐式转换为List<dim>。
标签: c# linq group-by linq-to-sql