C#Linq:从对象列表返回多维数组

C#Linq:从对象列表返回多维数组,c#,arrays,linq,multidimensional-array,C#,Arrays,Linq,Multidimensional Array,假设您有一个对象人列表: private List<Person> lstPersons = new List<Person>(); 您是否可以使用Linq从上述列表中返回多维数组,其中第一个维度是记录索引,第二个维度是名称,第三个维度是电子邮件?您可以创建一个对象[][],是: object[][] array = people.Select((p, index) => new object[] { index, p.Name, p.Mail })

假设您有一个对象人列表:

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

您是否可以使用Linq从上述列表中返回多维数组,其中第一个维度是记录索引,第二个维度是名称,第三个维度是电子邮件?

您可以创建一个
对象[][]
,是:

object[][] array = people.Select((p, index) => new object[] { index, p.Name, p.Mail })
                         .ToArray();
如果您想要一个
对象[,]
,就我所知,使用常规LINQ是不可行的

如果你有选择的话,我个人会用一种不寻常的类型:

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

这取决于你想对结果做什么,当然……

我想理解你的问题。您能提供这种多维数组的预期定义吗?请注意数组的索引必须是整数(据我所知)。例如,
名称
如何成为维度?你是否在尝试创建一种字典,你可以给它一个
名字
年龄
,和一封
邮件
,它会给你一个
对象?我的意思是说“给它一个索引,名字和电子邮件”雅库布,乔恩的答案正是我想做的。例如:String[]]array=lstPersons.Select((Person,i)=>newstring[]{i.ToString(),Person.Name(),Person.Email()}).ToArray();这是聪明的乔恩,谢谢!
var projected = people.Select((p, index) => new { Index = index, p.Name, p.Mail })
                      .ToArray();