2015-11-07 2 views
1

Скажем у вас есть список объектов человека:C# Linq: Возвращение многомерного массива из списка Object

private List<Person> lstPersons = new List<Person>(); 

, в котором определен человек, как:

public class Person 
{ 
     public string Name { get; set; } 

     public int Age { get; set; } 

     public string Mail { get; set; } 
} 

Вы можете использовать Linq для вернуть многомерный массив из указанного списка, в котором первое измерение является индексом записи, второе измерение - это имя, а третье измерение - электронная почта?

+0

Я пытаюсь чтобы понять ваш вопрос. Можете ли вы представить ожидаемое определение такого многомерного массива? Обратите внимание, что индекс массива должен быть целым (насколько мне известно). Итак, как может быть «Имя», например, измерение? Вы пытаетесь создать какой-то словарь, который вы можете дать ему «Имя», «Возраст» и «Почта», и он вернет вам объект «Человек»? –

+0

Я хотел сказать «дайте ему индекс, имя и адрес электронной почты» –

+0

Якуб, ответ Джона - именно то, что я хотел сделать. например: String [] [] array = lstPersons.Select ((Person, i) => new String [] {i.ToString(), Person.Name(), Person.Email()}). ToArray() ; – Saeid

ответ

3

Ну вы можете создать object[][], да:

object[][] array = people.Select((p, index) => new object[] { index, p.Name, p.Mail }) 
         .ToArray(); 

Если вы хотите в object[,], это не выполнимо с регулярным LINQ, насколько я знаю.

Если у вас есть выбор, хотя, я бы лично использовать anoymous тип:

var projected = people.Select((p, index) => new { Index = index, p.Name, p.Mail }) 
         .ToArray(); 

Это зависит от того, что вы хотите сделать с результатом, конечно ...

+0

Это блестящий Джон, спасибо! – Saeid

Смежные вопросы