2012-08-15 11 views
6

KeyValuePair<T1, T2>Tuple<T1, T2>の間に変換またはキャストが組み込まれていますか?タプル<T1,T2>とKeyValuePairの間の変換<T1, T2>

私は、これは些細な拡張メソッドになります知っている:オブジェクトは、それはC#に加えなるまでKeyValuePair<>は、多くの場合、2要素Tuple<>の代わりに使用した、特に以来、同様の目的(のために使用することができるので、

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); 
} 

しかし、 4.0)、私はそのようなコンバータが既にフレームワークに組み込まれているのだろうかと思いましたか?

理由私は、タプルがより適切かもしれない多くの場所でKeyValuePair<>を使用していた古いライブラリ(.NET 3.5をターゲットにしている)で作業していて、新しいコードでTuple<>を使用したいと思っています。私はちょうどキャストするか、またはこれらの方法からの戻り値kvpの値をTupleに変換することができるかどうか、または私自身の変換を定義する(または古いコードを変更する)必要があるかどうかを調べようとしています。

答えて

6

私が知っているBCLには組み込みの変換はなく、暗黙的または明示的なキャストはまったくありません。タイプが異なる目的のために使用されているので、私は彼らがこれまでにこの変換を追加するのを疑う。

あなたのバージョンは問題ないと思います。

関連する問題