Вам не нужно окружение new char[] { ... }
, потому что String.Split () использует params
Чтобы исправить индекс за пределами, последняя часть выбора должна стать:
attrType = line.Split(' ', '.' )[2]
Редактировать
А благодаря @Kobi let
позволит вам выполнить разделение всего один раз, что является большим улучшением, когда у вас много строк и / или столбцов.
var items = from line in lines
where i++ != 0
let words = line.Split(' ', '.')
select new
{
objectName = words[0],
attrName = words[1],
attrType = words[2]
};
Старый ответ
Вы можете использовать один и тот же разделитель для всех трех частей, что немного облегчает чтение:
select new{
objectName = line.Split(' ', '.' )[0],
attrName = line.Split(' ', '.' )[1],
attrType = line.Split(' ', '.' )[2]
};