मैं int
एक string
डेटाटाइप को सी # में डेटाटाइप में कैसे बदल सकता हूं ?
मैं int
एक string
डेटाटाइप को सी # में डेटाटाइप में कैसे बदल सकता हूं ?
जवाबों:
string myString = myInt.ToString();
null
मूल्यों के लिए अपवाद फेंक देता है।
string s = i.ToString();
string s = Convert.ToString(i);
string s = string.Format("{0}", i);
string s = $"{i}";
string s = "" + i;
string s = string.Empty + i;
string s = new StringBuilder().Append(i).ToString();
string count = "" + intCount;
.ToString()
रूपांतरण करने का सबसे कारगर तरीका है। यहां प्रस्तुत अन्य सभी विधियां अंततः .ToString()
वैसे भी कॉल करेंगी ।
s
string s = "xyz" + i;
एक नया "xyz" स्ट्रिंग बनाएगा - अपने पूर्णांक वाले नए स्ट्रिंग को बनाएँ; और फिर एक 3 स्ट्रिंग बनाएं जिसमें 2 संक्षिप्त हों। string.Format("xyz{0}", i);
दूसरी ओर, सिर्फ 2 स्ट्रिंग्स का उत्पादन करने में सक्षम है - क्योंकि यह उन्हें इनलाइन कर रहा है। यह प्रदर्शन और अधिक ध्यान देने योग्य हो जाता है क्योंकि तार लंबे हो जाते हैं।
बस अगर आप बाइनरी प्रतिनिधित्व चाहते हैं और आप अभी भी पिछली रात की पार्टी से नशे में हैं:
private static string ByteToString(int value)
{
StringBuilder builder = new StringBuilder(sizeof(byte) * 8);
BitArray[] bitArrays = BitConverter.GetBytes(value).Reverse().Select(b => new BitArray(new []{b})).ToArray();
foreach (bool bit in bitArrays.SelectMany(bitArray => bitArray.Cast<bool>().Reverse()))
{
builder.Append(bit ? '1' : '0');
}
return builder.ToString();
}
नोट: कुछ के बारे में बहुत अच्छी तरह से धीरज नहीं संभाल रहा है ...
संपादित करें: यदि आपको गति के लिए थोड़ी मेमोरी का त्याग करने में कोई आपत्ति नहीं है, तो आप पूर्व-परिकलित स्ट्रिंग मूल्यों के साथ एक सरणी उत्पन्न करने के लिए नीचे का उपयोग कर सकते हैं:
static void OutputIntegerStringRepresentations()
{
Console.WriteLine("private static string[] integerAsDecimal = new [] {");
for (int i = int.MinValue; i < int.MaxValue; i++)
{
Console.WriteLine("\t\"{0}\",", i);
}
Console.WriteLine("\t\"{0}\"", int.MaxValue);
Console.WriteLine("}");
}
किसी भी वस्तु की ToString विधि उस वस्तु का एक स्ट्रिंग प्रतिनिधित्व वापस करने के लिए माना जाता है।
int var1 = 2;
string var2 = var1.ToString();
@ जेवियर की प्रतिक्रिया पर आगे, यहां एक पृष्ठ है जो 100 पुनरावृत्तियों से 21,474,836 पुनरावृत्तियों तक रूपांतरण करने के लिए कई अलग-अलग तरीकों के बीच गति तुलना करता है ।
ऐसा लगता है कि दोनों के बीच बहुत अधिक मेल है:
int someInt = 0;
someInt.ToString(); //this was fastest half the time
//and
Convert.ToString(someInt); //this was the fastest the other half the time
string str = intVar.ToString();
कुछ शर्तों में, यो का उपयोग नहीं करना है ToString()
string str = "hi " + intVar;
या:
string s = Convert.ToString(num);
उत्तर में से कोई भी उल्लेख नहीं किया गया है कि ToString()
विधि पूर्णांक अभिव्यक्तियों पर लागू की जा सकती है
Debug.Assert((1000*1000).ToString()=="1000000");
समकोण शाब्दिक को भी
Debug.Assert(256.ToString("X")=="100");
हालाँकि इस तरह के पूर्णांक शाब्दिक अर्थ अक्सर खराब कोडिंग शैली ( जादू की संख्या ) के रूप में माने जाते हैं, ऐसे मामले भी हो सकते हैं जहां यह सुविधा उपयोगी है ...
using System.ComponentModel;
TypeConverter converter = TypeDescriptor.GetConverter(typeof(int));
string s = (string)converter.ConvertTo(i, typeof(string));
i.ToString
- बाकी केवल पूर्णता और मज़े के लिए यहाँ हैं।
typeof(int)
और typeof(string)
आपके पास प्रकार चर हो सकते हैं और जब भी कोई मौजूद होता है तो वह एक उपयुक्त कनवर्टर का उपयोग करता है।