У меня есть словарь с ключом известного типа (в данном примере: строка) и кортеж в качестве значения. Я хочу передать этот словарь в приложении и обычно могу легко распаковать данные, используя ключ словаря (в реальном приложении это не строка).
Но у меня есть один вариант использования, в котором Меня интересует только первый элемент кортежа, я знаю только, сколько других элементов в кортеже, но я не знаю их тип при получении словаря.
// Some place of the application defines the dictionary like this and adds some values...
var dictionary = new Dictionary<string, dynamic>();
dictionary.Add("key", ("I'm interested in this tuple element only", new List<int>().ToImmutableList()));
// In some other place of the application, I get the dictionary from above, but I'm interested only
// in the first element of the tuple, from the other elements I don't know the type so I try
// to access it like:
(string valueOfInterest, object) element = dictionary["key"];
// Do something with valueOfInterest
Но это код дает мне
Microsoft.CSharp.RuntimeBinder.RuntimeBinderException:
Cannot implicitly convert type System.ValueTuple<string,System.Collections.Immutable.ImmutableList<int>>'
to 'System.ValueTuple<string,object>'
Так что мне интересно, как это возможно (или вообще возможно), получить доступ только к первому элементу кортежа и «отбросить» остальные, преобразовав их на объект.