2013-02-10 13 views
5

मैं "1\t2\r\n3\t4" तरह तार है और मैं उन्हें विभाजित करने के लिए करना चाहते हैं:LINQ का उपयोग कर अलग-अलग विभाजक के साथ दो बार स्ट्रिंग को कैसे विभाजित करें?

new string[][] { { 1, 2 }, { 3, 4 } }

असल में, यह लाइनों में विभाजित किया जाना चाहिए और प्रत्येक पंक्ति टैब में विभाजित किया जाना चाहिए। मैं निम्नलिखित उपयोग करने की कोशिश की, लेकिन यह काम नहीं करता है:

string toParse = "1\t2\r\n3\t4"; 

string[][] parsed = toParse 
    .Split(new string[] {@"\r\n"}, StringSplitOptions.None) 
    .Select(s => s.Split('\t')) 
    .ToArray(); 
  1. क्या मेरी विधि के साथ गलत क्या है? मुझे वांछित परिणाम क्यों नहीं मिलता?
  2. LINQ का उपयोग करके आप इस समस्या से कैसे संपर्क करेंगे?

उत्तर

7

निकालें '@':

string toParse = "1\t2\r\n3\t4"; 

string[][] parsed = toParse 
    .Split(new string[] {"\r\n"}, StringSplitOptions.None) 
    .Select(s => s.Split('\t')) 
    .ToArray(); 

@ स्ट्रिंग बैकस्लैश शामिल करता है, चरित्र वे प्रतिनिधित्व के बजाय।

+0

मैं ईमानदारी से पता नहीं क्या बेवकूफ कारण के लिए मुझे लगता है कि '' @ वहाँ जोड़ लिया है और नहीं यह देखने के लिए सक्षम किया गया है। आपका बहुत बहुत धन्यवाद! : डी – hattenn

+0

@hattenn, मैं कुटिल होने का मतलब नहीं था :) कोई नुकसान इरादा नहीं है। – bas

+0

हाँ मुझे एक ही समस्या है, मैं इसे एक टिप्पणी में डालने से डरता था क्योंकि मुझे पता है कि यह जगह नहीं है। लेकिन मुझे आश्चर्य है कि यह एक अस्थायी बात है क्योंकि यह बहुत उपयोगी था! – bas

3
string str = "1\t2\r\n3\t4"; 
Int32[][] result = str.Split(new[] { Environment.NewLine }, StringSplitOptions.None) 
    .Select(s => s.Split('\t').Select(s2 => int.Parse(s2)).ToArray()) 
    .ToArray(); 

Demo

+0

'पर्यावरण \ newline' के साथ मूल स्ट्रिंग में' \ r \ n' को भी प्रतिस्थापित करना बेहतर होगा? अगर हम जानते हैं कि स्ट्रिंग में \ r \ n' है तो 'पर्यावरण.Newline' काम नहीं करेगा यदि कोड विभिन्न प्लेटफार्मों पर चलाया जाता है। मुझे संदेह है कि यद्यपि यह एक मुद्दा है। – TheEvilPenguin

+1

यदि कोड किसी भिन्न प्लेटफ़ॉर्म पर चलता है तो यह संभावना है कि इनपुट टेक्स्ट में भी सही रेखा विभाजक होगा। –

+0

सच है। मुझे लगता है कि कोड में एक स्ट्रिंग अक्षर को शामिल करना और फिर इसे विभाजित करना समझ में नहीं आता है, इसलिए स्ट्रिंग कहीं और से आनी चाहिए। मुझे लगता है कि यह सिर्फ एक स्निपेट में प्लेटफ़ॉर्म निर्भर और मंच स्वतंत्र संस्करण दोनों को देखने के लिए मेरे पैडेंट्री को गुदगुदी करता है। – TheEvilPenguin

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

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