所以我刚刚开始使用 ASP.NET MVC,并且遇到了一个我无法找到答案的问题。
我从 SQL 数据库中获取一些数据,并使用以下代码将其发送到 View :
var listingsQuery = (from s in db.tblListings select s).OrderBy(s => s.listingID).Skip(100).Take(25);
var listings = listingsQuery.ToList();
return View(listings);
这很好用,但我想在结果列表中添加一个值。基本上我想做的是这样的:
foreach (var item in listings)
{
this.Add("propertyType", "Home");
}
但显然这是行不通的。我尝试过使用 ToArray() 而不是 ToList(),但这毫无结果。
最佳答案
您想为 List 集合中的每个对象添加新属性吗?如果是这样,您可以创建一个继承列表中任何对象类型的新类型(将鼠标悬停在listingsQuery变量上 - 该类型位于<>符号内)并向其中添加新属性:
public class MyNewType : ExistingTableType
{
public string PropertyType { get; set; }
}
然后在查询内部,将属性投影到这个新类型中:
var listingsQuery = (from s in db.tblListings
orderby s.listingID
select new NewType
{
listingID = s.listingID,
someOtherField = s.someOtherField
}
).Skip(100).Take(25);
现在您可以循环浏览每条记录并分配一个值:
foreach(var record in listings)
{
record.ProperyType = "Home";
}
还有其他方法可以做到这一点(假设您使用的是 EF),例如,如果您使用原始 SQL,您可以将结果类型直接转换为新类型(无需映射每个字段),但是这应该可以帮助您入门。
关于c# - 将属性添加到列表中的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11404743/