Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Linq结果进入可观察集合引发解析异常_C#_Linq - Fatal编程技术网

C# Linq结果进入可观察集合引发解析异常

C# Linq结果进入可观察集合引发解析异常,c#,linq,C#,Linq,我已经创建了一个可观察的集合 public ObservableCollection<DatagGridCollection> combine_audit_final_collection { get; set; } 联接工作正常,但当我尝试将结果插入到可观察集合中时。我的演员选错了 combine_audit_final_collection = new ObservableCollection<DatagGridCollection>((Observabl

我已经创建了一个可观察的集合

 public ObservableCollection<DatagGridCollection> combine_audit_final_collection { get; set; }
联接工作正常,但当我尝试将结果插入到可观察集合中时。我的演员选错了

    combine_audit_final_collection = new ObservableCollection<DatagGridCollection>((ObservableCollection<DatagGridCollection>) d);

您确定您的ObservableCollection是
DataGridCollections
的集合吗?您集合中的每个元素都是一个
DataGridCollection

如果不是,但它实际上是
MyType
的集合,请将下面的单词
DataGridCollection
更改为
MyType

无论如何,如果您在调试器中检查对象
d
的类型,您会注意到它不是
IEnumerable

只需将代码更改为:

select new DataGridCollection()
{
   p.sno,
   ...
如果您希望在将来检测此类错误的原因,我的建议是不要过多地使用var这个词,也不要同时执行过多语句

IEnumerable<DataGridCollection> d = ...
    Select new DataGridCollection
    {
        ...
    };

combine_audit_final_collection = new ObservableCollection<DatagGridCollection>(d);
IEnumerable d=。。。
选择新建DataGridCollection
{
...
};
合并审计最终收集=新的可观察收集(d);

找到错误会容易得多。

您能分享您得到的确切错误吗
d
是匿名类型的集合,我认为不能转换为
ObservableCollection
是的,正如您所说,我尝试了大部分解决方案,但我得到的错误类似于匿名类型不能转换为ObservableCollection。我得到的错误是xamlparserexception。当我尝试将值分配给组合_audit_final_集合时,会发生此异常。如果我的方法有任何变通方法,请告诉我。您可能希望使用其他类,然后是DataGridCollection类。
select new DataGridCollection()
{
   p.sno,
   ...
IEnumerable<DataGridCollection> d = ...
    Select new DataGridCollection
    {
        ...
    };

combine_audit_final_collection = new ObservableCollection<DatagGridCollection>(d);