C# 从对象获取数组

C# 从对象获取数组,c#,arrays,class,object,C#,Arrays,Class,Object,我有下面的类定义。 public class people { public string first_name { get; set; } public string last_name { get; set; } public DateTime date_of_birth { get; set; } } 然后,我创建了一组人员,如下所示: people[] the_people = new people[3]; the_people[0].fir

我有下面的类定义。

public class people
{
    public string first_name { get; set; }
    public string last_name  { get; set; }
    public DateTime date_of_birth  { get; set; }
}
然后,我创建了一组人员,如下所示:

    people[] the_people = new people[3];
    the_people[0].first_name="Tony";
    the_people[0].last_name="Carrot";
    the_people[0].date_of_birth=new DateTime(1959-03-16);
    the_people[1].first_name="Joe";
    the_people[1].last_name="Tomato";
    the_people[1].date_of_birth=new DateTime(1963-06-2);
    the_people[2].first_name="Tarina";
    the_people[2].last_name="Wends";
    the_people[2].date_of_birth=new DateTime(1982-11-22);
如何在新字符串数组中存储\u people对象的第一个\u名称,以获得如下输出。这可以通过linq吗

string[] the_peoples_first_names=new string[3] {"Tony","Joe","Tarina"}; 

类似地,我将如何获取一个日期时间数组,以将所有人的出生日期存储在一个单独的日期时间数组中。

您正在尝试的操作可以通过LINQ完成。你基本上要求的是一个投影

var firstNames = the_people.Select(p => p.first_name).ToArray();
var dates_of_birth = the_people.Select(p => p.date_of_birth).ToArray();
因此:

投影是指将一个对象转换成一种新形式的操作,这种新形式通常只包含那些随后将使用的属性。通过使用投影,可以构造从每个对象生成的新类型。可以投影特性并对其执行数学函数。也可以投影原始对象而不进行更改

因此,我们希望将您的
人物
数组中的对象投影到一个新数组中。本文档建议使用
Select
LINQ操作符:

var the_people_names = the_people.Select(p => p.first_name);
Select
中包含的是一个委托,通常以委托或匿名委托的形式出现

但我们还没有完全做到这一点<代码>选择只是创建可枚举序列的延迟评估。它不返回数组。要创建数组,我们使用:

您可以将此方法用于
人员
类的任何属性,包括出生日期


您可以在上的MSDN上了解有关LINQ的更多信息。

请不要只是要求我们为您解决问题。向我们展示你是如何试图自己解决问题的,然后向我们展示结果是什么,并告诉我们为什么你觉得它不起作用。请参阅“”,以获得一篇您确实需要阅读的优秀文章。@johnsa了解如果每个人都对本网站上没有人会问的所有问题都有新的答案,那么我不想让我的帖子太长太无聊,因此没有人会对阅读感兴趣。这些帖子是非建设性的。。。但这是我的观点,我也有权这样做。你还是懒得告诉我们你试过什么。这可能会告诉我们你有什么问题。它甚至可能已经向你展示了问题的核心。@johnsaunder这个问题列在上面,如果你已经阅读并理解了它,你可能会像下面的善良的人一样尝试回答它。他们理解得很清楚,而不是乱问我的问题。@PeterH John是个聪明人,我相信他理解你的问题。约翰只是想帮你写一个更好的问题。我碰巧很幸运,但有人花时间写答案并不罕见,然后提问者说,“哦,是的,我试过了,没用。”。了解您的尝试对我们很有帮助,这样我们才知道从哪里开始。
var the_people_names_array = the_people.Select(p => p.first_name).ToArray();