C# 无法取消装箱为';System.Collections.Generic.KeyValuePair<;TKey,TValue>';

C# 无法取消装箱为';System.Collections.Generic.KeyValuePair<;TKey,TValue>';,c#,C#,我有网格视图,可以选择其中一个项目。此属性SelectedItem属于object类型。但是,它是KeyValuePair,其中MyObject2可能为null,并且通常为null。当我想使用此选定对象并尝试将该对象强制转换为KeyValuePair并且MyObject2为null时,我会得到InvalidCastException a {[StrangerParty.DataAccess.Models.Actor,]} (KeyValuePair<Actor, Role>)a Ca

我有网格视图,可以选择其中一个项目。此属性
SelectedItem
属于object类型。但是,它是
KeyValuePair
,其中
MyObject2
可能为null,并且通常为
null
。当我想使用此选定对象并尝试将该对象强制转换为
KeyValuePair
并且
MyObject2
null
时,我会得到
InvalidCastException

a
{[StrangerParty.DataAccess.Models.Actor,]}
(KeyValuePair<Actor, Role>)a
Cannot unbox 'a' as a 'System.Collections.Generic.KeyValuePair<StrangerParty.DataAccess.Models.Actor,StrangerParty.DataAccess.Models.Role>'
a
{[StrangerParty.DataAccess.Models.Actor,]}
(键值对)a
无法将“a”取消装箱为“System.Collections.Generic.KeyValuePair”
因此,有可能将这个对象
{[MyObject1,]}
强制转换为
KeyValuePair
,或者我做错了什么?

a?.GetType().ToString()给出了什么?不幸的是,错误消息没有帮助。您必须键入
a.GetType().ToString()
,并在此处报告您得到的结果!目前,我看到一个大括号
{
,后面是一个方括号
[
,但它不能确切地告诉我你有什么。它可能是另一个对象(在
{
..
}
中的
键值对。