यदि आपको (सिर-) लाइनों और / या स्तंभों को छोड़ने की आवश्यकता है, तो आप इसका उपयोग 2-आयामी सरणी बनाने के लिए कर सकते हैं:
var lines = File.ReadAllLines(path).Select(a => a.Split(';'));
var csv = (from line in lines
select (from col in line
select col).Skip(1).ToArray() // skip the first column
).Skip(2).ToArray(); // skip 2 headlines
यदि आप इसे आगे की प्रक्रिया करने से पहले डेटा को आकार देने की आवश्यकता है, तो यह काफी उपयोगी है (पहली 2 पंक्तियों को शीर्षक से मिलकर, और पहला कॉलम एक पंक्ति शीर्षक है - जिसे आपको सरणी में रखने की आवश्यकता नहीं है क्योंकि आप सिर्फ इसलिए डेटा का संबंध चाहते हैं)।
NB आप आसानी से निम्नलिखित कोड का उपयोग करके सुर्खियाँ और 1 कॉलम प्राप्त कर सकते हैं:
var coltitle = (from line in lines
select line.Skip(1).ToArray() // skip 1st column
).Skip(1).Take(1).FirstOrDefault().ToArray(); // take the 2nd row
var rowtitle = (from line in lines select line[0] // take 1st column
).Skip(2).ToArray(); // skip 2 headlines
यह कोड उदाहरण आपकी *.csv
फ़ाइल की निम्न संरचना को मानता है :
नोट: यदि आपको खाली पंक्तियों को छोड़ने की आवश्यकता है - जो कभी-कभी काम कर सकते हैं, तो आप सम्मिलित करके ऐसा कर सकते हैं
where line.Any(a=>!string.IsNullOrWhiteSpace(a))
LINQ कोड उदाहरणों में from
और select
कथन के बीच ।
";"
विभाजक के रूप में उपयोग करता है ... इसने CSV को एक गैर-मानक imo बना दिया है :(