我是linq的全新品牌。由于缺乏经验,我相信我错过了一些东西。Linq物体枚举
问题: 我使用LINQ查询对象,并返回枚举科目对象where o.Diff!=0
如果我试图枚举结果我得到的错误unable to cast object of type System.Collections.Generic.KeyValuePair '2[Acct]' to type 'Acct'
。
问题: 如何从Linq查询返回可枚举的Acct对象?
在此先感谢!
public class AcctSum
{
string ID;
Decimal Amt1;
Decimal Amt2;
Decimal Diff;
ArrayList<AcctDet> lines;
}
public class AcctInfo
{
Dictionary<string,AcctSum> acct
//code that adds the data...
public iEnumerable Discrepancies()
{
var results = (from Acct a in acct
where a.Diff != 0
select a).AsEnumerable<Acct>();
foreach (var result in results)//at runtime this generates an error
{
}
return results.GetEnumerator();
}
}
您正在交换使用Acct和AcctSum。这看起来不正确。如果Acct是枚举,则不能将其从一个转换为另一个。 – Schultz9999
首先将'from'中的'Acct'改成一个不是类型名称的变量名称,比如'variable1',然后将'AsEnumerable()'改为'AsEnumerable ()',最后将'in acct'改为'在acct.Values' –