Czy istnieje jakakolwiek wbudowana konwersja lub rzutowanie między KeyValuePair<T1, T2>
i Tuple<T1, T2>
?Konwersja między krotką <T1,T2> a KeyValuePair <T1, T2>
wiem, że będzie to trywialne metodę rozszerzenia:
public static KeyValuePair<T1, T2> ToPair<T1, T2>(this Tuple<T1, T2> source)
{
return new KeyValuePair<T1, T2>(source.Item1, source.Item2);
}
public static Tuple<T1, T2> ToTuple<T1, T2>(this KeyValuePair<T1, T2> source)
{
return Tuple.Create(source.Key, source.Value);
}
Ale od obiektów może być użyta do podobnych celów (zwłaszcza KeyValuePair<>
był często używany w miejsce 2 elementu Tuple<>
aż to dodatek do C# 4.0), zastanawiałem się, czy taki konwerter był już wbudowany w framework?
Pytam o to pracuję ze starszym kierowania biblioteką (.NET 3.5), który używany KeyValuePair<>
w wielu miejscach, że krotka może być bardziej odpowiednie, a chcę użyć Tuple<>
w nowym kodeksie. więc próbuję dowiedzieć się, czy mogę po prostu rzucić lub przekonwertować wartości zwracanych kvp
z tych metod na Tuple
lub jeśli muszę zdefiniować moją własną konwersję (lub zmienić starszy kod).