簡體   English   中英

訪問匿名類型集合中的屬性 - C#

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM