2012-08-15 12 views
6

के बीच रूपांतरण KeyValuePair<T1, T2> और Tuple<T1, T2> के बीच कोई भी रूपांतरण या कलाकार बनाया गया है?Tuple <T1,T2> और KeyValuePair <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); 
} 

लेकिन वस्तुओं के बाद से समान उद्देश्यों (खासकर जब से KeyValuePair<> अक्सर एक 2 तत्व Tuple<> के स्थान पर इस्तेमाल किया गया था जब तक यह सी # के अलावा है के लिए इस्तेमाल किया जा सकता 4.0), मैं सोच रहा था कि इस तरह के एक कनवर्टर पहले ही ढांचे में बनाया गया था?

कारण मैं पूछ रहा एक पुराने पुस्तकालय (लक्षित कर .NET 3.5) है कि कई स्थानों है कि एक टपल अधिक उपयुक्त हो सकता है में KeyValuePair<> इस्तेमाल किया साथ काम कर रहा हूँ है, और मैं नए कोड में Tuple<> उपयोग करना चाहते हैं। तो मैं यह पता लगाने की कोशिश कर रहा हूं कि क्या मैं इन तरीकों से kvp मानों को Tuple पर वापस कर सकता हूं या यदि मुझे अपना रूपांतरण परिभाषित करने की आवश्यकता है (या पुराने कोड को बदलना है)।

उत्तर

6

बीसीएल में कोई अंतर्निहित रूपांतरण नहीं है जिसे मैं जानता हूं, और निश्चित रूप से कोई अंतर्निहित या स्पष्ट कलाकार नहीं है। मुझे संदेह है कि वे कभी भी इस रूपांतरण को जोड़ देंगे क्योंकि विभिन्न उद्देश्यों के लिए प्रकारों का उपयोग किया जाता है।

मुझे लगता है कि आपका संस्करण ठीक है।

संबंधित मुद्दे