との間に組み込みの変換またはキャストはKeyValuePair<T1, T2>
ありTuple<T1, T2>
ますか?
私はこれが簡単な拡張方法になることを知っています:
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);
}
しかし、オブジェクトは同様の目的で使用できるため(特に、 C#4.0に追加されるまでKeyValuePair<>
2要素の代わりに使用されることが多かったためTuple<>
)、そのようなコンバーターはすでにフレームワークに組み込まれているのでしょうか。
私が尋ねる理由は、タプルがより適切である可能性がある多くの場所で使用されている古いライブラリ(.NET 3.5をターゲットとする)を使用していて、新しいコードでKeyValuePair<>
使用したいからです。したがって、これらのメソッドからの戻り値をキャストまたは変換できるかどうか、または独自の変換を定義する必要があるかどうか(または古いコードを変更する必要があるかどうか)Tuple<>
を把握しようとしています。kvp
Tuple