Просто разделение на =
и @
- это возвращает и IEnumerable
анонимного класса с интересующими вас свойствами:
var items = File.ReadAllLines(fileName)
.Skip(1) //Skip header
.Where( line => !string.IsNullOrWhiteSpace(line))
.Select(line =>
{
var columns = line.Split('=', '@');
return new
{
ItemName = columns[0].Trim(),
Description = columns[1].Trim(),
MoreInfo = columns[2].Trim()
};
});
Этот подход потребовал бы, чтобы токены-разделители использовались в качестве разделителей исключительно - если они встречаются в любом из полей, это все испортит и аннулирует этот подход.