lpe*_*ice 3 c# linq casting list
我已经声明了一个这样的自定义集合类:
public class WipCommesse
{
private string FNumCommessa;
private int FIdTipologia, FTotQtaLetta;
public int IdTipologia
{
get { return FIdTipologia; }
set { FIdTipologia = value; }
}
public string NumCommessa
{
get { return FNumCommessa; }
set { FNumCommessa = value; }
}
public int TotQtaLetta
{
get { return FTotQtaLetta; }
set { FTotQtaLetta = value; }
}
}
public class WipCommesseList : List<WipCommesse>
{
}
Run Code Online (Sandbox Code Playgroud)
在我的代码中,我使用 Linq 对另一个列表进行分组,并且我想转换为我的自定义类型
WipCommesseList wipGrouped =
(WipCommesseList)myList.GroupBy(x => new
{
x.IdTipologia,
x.NumCommessa
}).
Select(g => new WipCommesse()
{
IdTipologia = g.Key.IdTipologia,
NumCommessa = g.Key.NumCommessa,
TotQtaLetta = g.Sum(i => i.QtaLanciabile)
}).ToList();
Run Code Online (Sandbox Code Playgroud)
类的定义是相同的,但是当我调用 ToList() 方法时,它返回为 System.Collection.Generic.List 并且转换失败。
我该怎么做才能正确转换为我的班级?
代码应更改如下:
WipCommesseList wipGrouped =
new WipCommesseList(myList.GroupBy(x => new
{
x.IdTipologia,
x.NumCommessa
}).
Select(g => new WipCommesse()
{
IdTipologia = g.Key.IdTipologia,
NumCommessa = g.Key.NumCommessa,
TotQtaLetta = g.Sum(i => i.QtaLanciabile)
}));
Run Code Online (Sandbox Code Playgroud)
这假设您在 WipCommesseList 中有以下构造函数:
public class WipCommesseList : List<WipCommesse>
{
public WipCommesseList() : base()
{
}
public WipCommesseList(int capacity) : base(capacity)
{
}
public WipCommesseList(IEnumerable<WipCommesse> collection) : base(collection)
{
}
}
Run Code Online (Sandbox Code Playgroud)
这允许您通过创建新的 WipCommesseList 对象将基于 WipCommesse 的任何可枚举类型转换为 WipCommesseList。
| 归档时间: |
|
| 查看次数: |
2934 次 |
| 最近记录: |