Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.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# 如何将ObservableCollection转换为MyCollection:ObservableCollection<;MyClass>;_C#_Linq_Casting_Observablecollection - Fatal编程技术网

C# 如何将ObservableCollection转换为MyCollection:ObservableCollection<;MyClass>;

C# 如何将ObservableCollection转换为MyCollection:ObservableCollection<;MyClass>;,c#,linq,casting,observablecollection,C#,Linq,Casting,Observablecollection,我有一个自定义的MyClass可观察集合 class MyClass { } class MyObservablECollection : ObservableCollection<MyClass> { } class-MyClass { } MyObservablECollection类:ObservableCollection { } 现在我正在创建它们的对象: ObservableCollection<MyClass> _

我有一个自定义的MyClass可观察集合

 class MyClass
    {
    }

 class MyObservablECollection : ObservableCollection<MyClass>
    {
    }
class-MyClass
{
}
MyObservablECollection类:ObservableCollection
{
}
现在我正在创建它们的对象:

 ObservableCollection<MyClass> _varObsCollection = new ObservableCollection<MyClass>();

 MyObservablECollection _varMyObservablECollection = new MyObservablECollection();

_varMyObservablECollection = _varObsCollection;

var _obsvleCollection  = new  ObservableCollection<MyCollection>(_myVar);

MyCollection _tempCollection = new  ObservableCollection<MyCollection>(_myVar);
ObservableCollection\u varObsCollection=新的ObservableCollection();
MyObservablECollection_varMyObservablECollection=新的MyObservablECollection();
_VarmObservableCollection=\u varObsCollection;
var _obsvleCollection=新的可观测集合(_myVar);
MyCollection _tempCollection=新的可观测集合(_myVar);
无法将类型“System.Collections.ObjectModel.ObservableCollection”隐式转换为“MyObservablECollection”

我知道我们不能将父类对象(
ObservableCollection
)分配给子类
MyObservablECollection


但是有没有办法我可以把它们扔出去?

你把它弄颠倒了,这就是工作情况:

ObservableCollection<MyClass> _tempCollection = new MyCollection(_myVar);
observedcollection\u tempCollection=newmycollection(\u myVar);
MyCollection
observedcollection
但是
observedcollection
不一定是
MyCollection

编辑:我知道你试图维持同样的秩序。
在这种情况下-不可能,因为继承是如何工作的。

通常,如果您想执行类似操作,请为
MyObservableCollection
创建一个构造函数,该构造函数将
ObservableCollection
作为参数,然后构造您想要的对象。没有朝这个方向强制转换的概念,仅仅是因为您需要不知从何处创建信息(例如,子类型上可能存在的所有额外内容)——这就是为什么您需要显式代码来实现这一点。您可能可以通过在类中添加强制转换运算符来实现,但我个人会选择构造函数方法。我在问题中提到,不能将父对象分配给子对象,但是,如果有一种方法可以工作,但不是OP想要做的。@Simsons您能详细说明为什么希望将
ObservableCollection
实例设置为
MyCollection
var吗?