Я не понимаю, в чем проблема и почему некоторые из этих ответов выглядят такими сложными: - / Вот мое предложение:
var r = (from record in table.Elements("Record")
select (from element in record.Elements("Field")
select element.Value));
// => IEnumerable<IEnumerable<string>>
Внутренний IEnumerable предназначен для столбцов, а внешний - для строк. (Вопрос несколько сбивает с толку, потому что нет IEnumerable<T,T'>
, выше - моя адаптация намерения.)
Вы можете сделать внутренний IEnumerable в строку (например, Join on ","), но не очень интересно помещать в сетку, если вы подразумеваете значения в виде столбцов!
var r = (from record in table.Elements("Record")
select String.Join(", ",
record.Elements("Field").Select(f => f.Value).ToArray());
// => IEnumerable<string>
Выше, вероятно, можно было бы сделать лучше, если бы я действительно знал выражения LINQ. Однако он работает и охватывает «другой» случай - «ToArray» предназначен для .NET 3.5 и ниже.