Did you ever face a situation where you want to read a delimited file (CSV or any similar format) and want to filter the records on the basis of some conditions (by checking some values against columns).
For example, let's assume that
Data.txt file contains the following records:
Name,Age,City
Person1,30,CityA
Person2,20,CityB
Person3,25,CityB
Person4,30,CityA
Person5,27,CityA
If we want to find all records which belong to
CityA
with age >= 30 then we can use LINQ for this purpose:
string delimiter = ",;";
List<string> logs = (File.ReadAllLines(@"C:\Data.txt")
.Where(line => !string.IsNullOrEmpty(line))
.Select(line => line.Split(delimiter.ToCharArray(), StringSplitOptions.RemoveEmptyEntries))
.Where(values => values[2].Equals("CityA", StringComparison.CurrentCultureIgnoreCase))
.Where(values => int.Parse(values[1]) >= 30)
.Select(values => string.Join("_", values))
.Distinct()
.ToList<string>());
Hope this will help you out in reading delimited files :)