[英]Access properties in anonymous type collection - C#
在下面的源代碼中,我從users
集合中選擇了一個屬性子集,我需要將它綁定到一個下拉列表:
var locationDepts = (from u in users select new { u.RcNumber, u.RcName }).Distinct().ToList();
if(!locationDepts.Count.Equals(0))
{
ddlRCListPerBuilding.DataSource = locationDepts;
ddlRCListPerBuilding.DataValueField = "RcNumber";
//Want to format display test "RCNumber - RcName"
ddlRCListPerBuilding.DataTextField = string.Format("{0} - {1}", locationDepts.RcNumber, locationDepts.RcName);
ddlRCListPerBuilding.DataBind();
}
我想將列表項顯示文本格式化為匿名類型 RcNumber 和 RcName 的組合。 如何訪問匿名類型的屬性以指示下拉列表項文本的格式?
您可以在名為“組合”的數據源中創建一個新屬性
var locationDepts = (from u in users
select new
{
u.RcNumber,
Combined = u.RcNumber + " - " + u.RcName
}).Distinct().ToList();
if(locationDepts.Count > 0)
{
ddlRCListPerBuilding.DataSource = locationDepts;
ddlRCListPerBuilding.DataValueField = "RcNumber";
ddlRCListPerBuilding.DataTextField = "Combined";
ddlRCListPerBuilding.DataBind();
}
我只想更改匿名類型以包含已格式化的值:
var locationDepts = (from u in users select new { u.RcNumber, RcName = String.Format("{0} - {1}", u.RcNumber, u.RcName) }).Distinct().ToList();
if(!locationDepts.Count.Equals(0))
{
ddlRCListPerBuilding.DataSource = locationDepts;
ddlRCListPerBuilding.DataValueField = "RcNumber";
ddlRCListPerBuilding.DataTextField = "RcName";
ddlRCListPerBuilding.DataBind();
}
您可以使用視圖 model
public class RcFields
{
public int RcNumber { get; set; }
public string RcName { get; set; }
}
List<RcFields> locationDepts = (from u in users
select new RcFields
{
u.RcNumber,
u.RcName
})
.Distinct()
.ToList();
然后
... locationDepts.RcName ..
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.