2010-02-23 8 views
5

LINQ का उपयोग करके, प्रत्येक स्ट्रिंग को टैब-डिलीमिटेड .txt फ़ाइल से प्राप्त करने का एक प्रभावशाली तरीका क्या है (और फिर प्रत्येक शब्द प्राप्त करें, आमतौर पर कौन सी स्ट्रिंग। स्प्लिट (...) करता है)?लिंक और स्ट्रीम्रेडर लाइनें प्राप्त कर रहे हैं

var v = from line in File.ReadAllLines() 
    select n 

इस समाधान का मेरा हिस्सा है। मुझे कोई फर्क नहीं पड़ता अगर यह उपज रिटर्न का उपयोग करता है।

संपादित करें: मैंने यहां पर धागे भी देखे हैं जो मैं करने की कोशिश कर रहा हूं, लेकिन उन्हें नहीं ढूंढ सकता।

उत्तर

7

मैं पूरी तरह यकीन नहीं है आप क्या पूछ रहे हैं लेकिन ऐसा लगता है कि आप एक टैब को सीमित फ़ाइल से प्रत्येक शब्द को IEnumerable<string> के रूप में प्राप्त करने का प्रयास कर रहे हैं। यदि ऐसा है तो निम्न

var query = File.ReadAllLines(somePathVariable) 
       .SelectMany(x => x.Split(new char[] { '\t' }); 
+0

+1 महान उत्तर और लैम्ब्डा अभिव्यक्तियों का उपयोग –

+0

यही वह है जो मैं ढूंढ रहा हूं, मेरी पोस्ट को अच्छी तरह से न बोलने के लिए क्षमा चाहता है, यह सुनिश्चित नहीं था कि इस मुद्दे को कैसे समझाया जाए। मैं स्ट्रिंग लाइन में प्रत्येक शब्द को वापस करने के लिए उपज वापसी के साथ कैसे जोड़ सकता हूं? – dotnetdev

+0

क्या आखिरी लाइन को छोड़कर सभी के लिए यह एक आसान तरीका है? – Andy

0

फ़ाइल का उपयोग करना। रीडअललाइन आसान है - लेकिन यह आवश्यक नहीं है, क्योंकि यह पूरी लाइन को स्मृति में पढ़ता है।

एक लघु संस्करण शायद होगा:

var wordsPerLine = from line in File.ReadAllLines(filename) 
       select string.Split(line, '\t'); 

foreach(var line in wordsPerLine) 
{ 
    foreach(word in line) 
    { 
     // process word... 
    } 
} 

आप शब्दों के एक भी गणनीय चाहते हैं, आप SelectMany उपयोग कर सकते हैं और वह भी प्राप्त करने के लिए, ...

+0

निश्चित रूप से सबसे छोटा संस्करण नहीं आज़माएं। क्वेरी ऑपरेटर बहुत वर्बोज़ हैं;) 'फ़ाइल। रीडअललाइन ("file.txt")। चुनें (लाइन => लाइन। स्प्लिट (' \ t ')) ' –

+0

हाँ - लेकिन ओपी को क्वेरी ऑपरेटरों का उपयोग करना पसंद आया, इसलिए मैंने इसे छोड़ दिया । –

+0

यदि मेरे पास ऐसी स्थिति थी जहां मुझे 50 एमबी बड़ा टैब की सीमित फ़ाइल से डेटा निकालना पड़ा, तो यह सबसे अच्छा तरीका होगा? –

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