获取IEnumerable<;实例中类型T的属性名称;T>;

本文关键字:属性 gt IEnumerable lt 实例 获取 类型 | 更新日期: 2023-09-27 18:22:33

我有一个人类:

public class Person {
public long Id { get; set; }
public string LastName { get; set; }
public string FirstName { get; set; }
public string PhoneNo { get; set; }
public string FaxNo { get; set; }
public int Age { get; set; }
public DateTime BirthDate { get; set; }
}

人们的例子是这样的:

IEnumerable<Person> people = new List<Person>() { /* Define people */ }

所以我需要获取个人使用人的财产名称,当然我可以使用这个:

string fr = people.FirstOrDefault().FirstName;

那么,在people没有Person的任何实例的情况下呢?我知道当我们没有Person时,我们就没有FirstName了。但我需要在ASP.NET MVC的列表视图中访问它。我想这样使用:

  @Html.DisplayFor(model => model.LastName)

有人知道吗?

获取IEnumerable<;实例中类型T的属性名称;T>;

如果people为空,那么FirstOrDefault()将返回null,因此您将获得null引用异常。

目前还不清楚您希望在这里发生什么,但如果您只想要null,可以使用:

string fr = people.Select(p => p.FirstName).FirstOrDefault();

这将首先执行投影,因此如果没有人,FirstOrDefault()将只返回null,否则返回第一个人的名字。

这不是一个完整的答案,但我希望能有所帮助,你可以定义一个空的Person实例,并像下面这样使用它:

@model IEnumerable<YourNameSpace.Models.Person>
@{
ViewBag.Title = "Index";
YourNameSpace.Models.Person p = new YourNameSpace.Models.Person();
}

和:

@Html.LabelFor(x => p.FirstName)