Как набрать словарь GenericType - PullRequest
0 голосов
/ 29 августа 2018

У меня есть объект словаря, например: -

var gridContent = new Dictionary<T, KeyValuePair<int, bool>>();

Теперь я хочу напечатать это в: -

Dictionary<SomeClass, KeyValuePair<int, bool>>();

Есть ли способ сделать это?

1 Ответ

0 голосов
/ 29 августа 2018

Я уверен, что есть способ разыграть это по-другому, но первое, что пришло мне в голову, - это преобразовать его с помощью Linq:

PS> scriptcs
scriptcs (ctrl-c to exit or :help for help)

> public class SomeClass {}
> public class SomeClassB : SomeClass {}
> public class Test<T> where T: SomeClass
* {
*     public Dictionary<T, KeyValuePair<int, bool>> gridContent = new Dictionary<T, KeyValuePair<int, bool>>();
* }
>
> var testInstance = new Test<SomeClassB>();
> // casting error
> // var testGridContent = (Dictionary<SomeClass, KeyValuePair<int, bool>>)testInstance.gridContent;
>
> var testGridContent = testInstance.gridContent.ToDictionary(kvp=>(SomeClass)kvp.Key, kvp=>kvp.Value);
...