public static List <List <string> > ReadCsvFile(string fn, Encoding enc, int maxlines = -1) { List <List <string> > lines = new List <List <string> >(); int nline = 0; StreamReaderEx.OpenSteamForRead(fn, enc, sr => { while (!sr.EndOfStream && (maxlines <= 0 || nline < maxlines)) { nline++; var line = CsvFileHelper.GetLine(sr); bool hasNullVal = true; foreach (var fieldVal in line) { if (!string.IsNullOrEmpty(fieldVal)) { hasNullVal = false; break; } } if (!hasNullVal) { lines.Add(line); } } }); return(lines); }