获取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)
有人知道吗?
如果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)