C # में चार से इंट


96

Utf16 में Int मान को संबंधित चार में परिवर्तित करने का सबसे अच्छा तरीका क्या है, यह देखते हुए कि Int वैध मानों की श्रेणी में है?

जवाबों:


139
(char)myint;

उदाहरण के लिए:

Console.WriteLine("(char)122 is {0}", (char)122);

पैदावार:

(char) 122 z है


यह एक बुरा जवाब है। c = (char) 49 है 1 नहीं '1'
nykwil

10
@nykwil मुझे गिमल के जवाब में कुछ भी गलत नहीं दिख रहा है।
टॉम लिंट

11
@nykwil - यह गलत सूचना है। ट्रूConsole.WriteLine((char)49 == '1'); दे देंगे । जैसा कि इस कास्ट का उपयोग करना पूरी तरह से ठीक है। आपका स्पष्टीकरण काम नहीं करने का एक वैध उदाहरण प्रदान नहीं करता है। इसके अलावा, है झूठे जो अनिवार्य रूप से अपनी टिप्पणी निराधार बनाता है। char c = (char)49; string s = "1two3"; Console.WriteLine(c == s[0]);Console.WriteLine((char)49 == 1);
ट्रैविस जे

62
int i = 65;
char c = Convert.ToChar(i);

47
Convert.ToChar अंततः "(चार) मूल्य" के रूप में एक स्पष्ट रूपांतरण करता है, जहां "मूल्य" आपका अंतर मूल्य है। ऐसा करने से पहले, यह सुनिश्चित करने के लिए जाँच करता है कि "मान" 0 से 0xffff की सीमा में है, और यदि यह नहीं है तो एक ओवरफ़्लो अपवाद को फेंकता है। अतिरिक्त विधि कॉल, मान / सीमा जाँच और ओवरफ़्लो एक्ससेप्शन उपयोगी हो सकता है, लेकिन यदि आप सिर्फ "चार (" मूल्य) का उपयोग करते हैं, तो प्रदर्शन बेहतर होगा।
त्रिनको

17

हालाँकि इस प्रश्न का उत्तर बिल्कुल नहीं दिया गया है, लेकिन यदि आपको अंतिम परिणाम की आवश्यकता है या फिर स्ट्रिंग के रूप में आप उपयोग कर सकते हैं

string s = Char.ConvertFromUtf32(56);

जो आपको जरूरत पड़ने पर UTF-16 जोड़े को सरोगेट देगा, अगर आप बीएमपी से बाहर हैं तो आपकी रक्षा करेंगे ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.