You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将LINQ查询结果转换为ObservableCollection时引发类型转换异常

解决ObservableCollection类型转换异常问题

你遇到的核心问题是LINQ查询返回的是匿名类型集合,无法直接强制转换为ObservableCollection<DatagGridCollection>。匿名类型和你自定义的DatagGridCollection是完全不同的类型,运行时的类型检查会直接抛出异常。

正确的解决方案

修改你的LINQ查询,在select语句中直接创建DatagGridCollection的实例,而不是匿名对象,这样查询结果就是IEnumerable<DatagGridCollection>类型,可以直接传给ObservableCollection的构造函数:

var d = from p in Auditcollectiondata
        from c in Finalcollectiondata
        where c.sno == p.sno
        select new DatagGridCollection
        {
            sno = p.sno,
            AuditID = p.AuditID,
            claimnumber = p.claimnumber,
            QueryID = p.QueryID,
            DateWorked = p.DateWorked,
            UserID = p.UserID,
            Line = p.Line,
            Dos = p.Dos,
            CPT = p.CPT,
            Units = p.Units,
            amtBilled = p.amtBilled,
            RecoupUnit = p.RecoupUnit,
            reocupamts = p.reocupamts,
            ScioNote = p.ScioNote,
            Linelevelstatus_valuetext = p.Linelevelstatus_valuetext,
            providerNote = p.providerNote,
            // 注意实体类属性名是Finalstatus(小写s),查询里的字段是c.FinalStatus(大写S),需对应一致
            Finalstatus = c.FinalStatus,
            final_status_sno = c.ID_finalstatus // 这里假设ID_finalstatus对应实体类的final_status_sno
        };

// 直接传入IEnumerable即可,无需强制转换
combine_audit_final_collection = new ObservableCollection<DatagGridCollection>(d);

关键注意点

  • 确保select中赋值的属性名和DatagGridCollection类的属性完全匹配(C#是大小写敏感的),避免出现属性未赋值的情况。
  • ObservableCollection的构造函数原生支持接收IEnumerable<T>类型参数,不需要先转成ObservableCollection再强制转换,这是多余且错误的操作。

备选方案(需分批处理时)

如果数据集很大,或者需要在添加前做额外逻辑处理,可以先创建空集合,再循环添加:

combine_audit_final_collection = new ObservableCollection<DatagGridCollection>();
foreach(var item in d)
{
    // 可添加额外处理,比如设置update属性默认值
    item.update = false;
    combine_audit_final_collection.Add(item);
}

这样处理后,你的combine_audit_final_collection就能正常绑定到DataGrid,不会再出现运行时类型转换异常。

内容的提问来源于stack exchange,提问作者Vini

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 00:18:11