2017-07-14 2 views
24

मैं शायद कुछ बहुत ही बुनियादी लेकिन यह मेरे स्टम्प्ड है छूट गई है।सी # string.split प्रसरण

String.Split() मैं

.Split(' ') 

और

.Split(new char[' ']) 

इस कोड को देखते हुए के बीच अलग अलग परिणाम प्राप्त का उपयोग करते समय:

using (System.IO.StreamWriter sw = new StreamWriter(@"C:\consoleapp1.log", true)) 
{ 
    string anystring = "pagelength=60 pagewidth=170 cpi=16 lpi=8 landscape=1 lm=2"; 
    sw.WriteLine(".Split(' ')"); 
    string[] anystrings1 = anystring.Split(' '); 
    for (int i = 0; i < anystrings1.Length; i++) 
    { 
     sw.WriteLine([email protected]"{i,2}: {anystrings1[i]}"); 
    } 
    sw.WriteLine(".Split(new char[' '])"); 
    string[] anystrings2 = anystring.Split(new char[' ']); 
    for (int i = 0; i < anystrings2.Length; i++) 
    { 
     sw.WriteLine([email protected]"{i,2}: {anystrings2[i]}"); 
    } 

} 

क्यों मैं अलग परिणाम प्राप्त करते हैं:

.Split(' ') 
0: pagelength=60 
1: pagewidth=170 
2: cpi=16 
3: lpi=8 
4: landscape=1 
5: lm=2 
.Split(new char[' ']) 
0: pagelength=60 pagewidth=170 cpi=16 lpi=8 landscape=1 lm=2 
+14

के आकार के साथ char के सरणी बनाता है मुझे लगता है कि आप 'करने के लिए नई चार [] { ''}' के लिए एक दूसरे के – Jamiec

उत्तर

40
new char[' '] 

ऐसा नहीं करता जो आपको लगता है।

स्पेस ASCII character 32 (और सी # char और int के बीच अंतर्निहित रूपांतरण की अनुमति देता है)। ताकि कोड 32.

+7

कारण उनका कहना है लायक हो सकता है मतलब - वहाँ है एक 'char' और' int' – Jamiec

+7

के बीच अंतर्निहित रूपांतरण यह गलती इतनी मुश्किल है कि यह नहीं है? उन्हें एक चरित्र बनाया जाना चाहिए जो एक int में स्पष्ट रूप से परिवर्तनीय नहीं है। :) – Sweeper

+3

मैं मानना ​​होता है कि जैसे सी # एक जोरदार टाइप किया भाषा बिल्कुल भी अंतर्निहित रूपांतरण का समर्थन नहीं करना चाहिए। मैं – John

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