There are some cool classes and tricks and short cuts in C#. I know this but I have not worked with C# enough to have them memoried.
One cool trick is this. If you read from a file data that is arranged in a similar line-by-line structure where each line is arranged in columns spaced out by tabs, the data can be read into a kind of class in C# and then you can parse out one column of data by simply doing a “for each” command. Does anyone know off-hand how this is done?
Basically, what I am talking about is this. I understand how to read a file line by line:
int counter = 0;
string line;
System.IO.StreamReader file =
new System.IO.StreamReader(filename);
while ((line = file.ReadLine()) != null)
{
Console.WriteLine(line);
counter++;
}
file.Close();
Now, how would I go about replacing Console.WriteLine(line); with code that will organize the data automatically into
members of a class provided that the line columns in the input file are seperated by /t (tabs)?
A naieve implementation would use string.Split('\ '). That said, check out filehelpers – it is pretty much all you need to process a delimited or fixed-width text file.
you can use LINQ to load data to list and manipulate the way you need…like
getList = from line in File.ReadAllLines(fileName)
let itemRecord = line.Split('\ ')
select new Record()
{
itemID = itemRecord [0],
lname = itemRecord [1]
}.ToList();
Make sure you declare a class Record with properties itemIDand lname
There are some cool classes and tricks and short cuts in C#. I know this but I have not worked with C# enough to have them memoried.
One cool trick is this. If you read from a file data that is arranged in a similar line-by-line structure where each line is arranged in columns spaced out by tabs, the data can be read into a kind of class in C# and then you can parse out one column of data by simply doing a “for each” command.