【问题标题】:C# Linq: Return a multidimensional array from a list of ObjectC# Linq:从对象列表中返回一个多维数组
【发布时间】:2015-11-07 21:28:10
【问题描述】:

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

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从上面提到的列表中返回一个多维数组,其中第一维是记录索引,第二维是名称,第三维是电子邮件?

【问题讨论】:

  • 我正在尝试理解您的问题。你能提供这种多维数组的预期定义吗?请注意,数组的索引必须是整数(据我所知)。那么Name 怎么可能是一个维度呢?您是否正在尝试创建某种字典,您可以给它一个NameAge 和一个Mail,它会返回一个Person 对象?
  • 我的意思是“给它一个索引、名称和电子邮件”
  • Yacoub,Jon 的回答正是我想做的。例如: String[][] array = lstPersons.Select((Person,i) => new String[] { i.ToString(), Person.Name(), Person.Email() }).ToArray();

标签: c# arrays linq multidimensional-array


【解决方案1】:

你可以创建一个object[][],是的:

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

如果您想要object[,],据我所知,这对于常规 LINQ 是不可行的。

如果你有选择,我个人会使用匿名类型:

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

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

【讨论】:

  • 乔恩太棒了,谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-28
  • 1970-01-01
相关资源
最近更新 更多