+-
首页> C#>如何创建一个匿名对象列表
我知道在c#4或4.5中可以创建匿名类型和动态类型,但是我不确定它是如何工作的.
我正在遍历一个共享点网站集,并且我想为每个子网站添加一个项目到列表中,该项目具有3列

但是我不想为此创建一个类,因为它仅特定于此方法.

private void RenderGrid()
{
    string currentUrl = SPContext.Current.Site.Url;
    List<object> listobject= new List<object>();

    SPSecurity.RunWithElevatedPrivileges(delegate()
    {
        using (SPSite clientSiteCollection = new SPSite(currentUrl))
        {
            foreach (SPWeb web in clientSiteCollection.AllWebs)
            {
                string webtemplate = web.Properties["WebTemplate"];

                if (webtemplate.Equals("xx"))
                {
                    SPList xx = web.Lists.TryGetList(Constants.Lists.xx);

                    if (opportunityInfoList != null)
                    {
                        opportunityInfo.Add(new object() {
                            col1 = "value1",
                            col2 = "value2",
                            col3 = "value3"
                        });
                    }
                }
            }
        }
    });

    lastCreatedOpportunitiesGrid.DataSource = opportunityInfo;
    lastCreatedOpportunitiesGrid.DataBind();
}
最佳答案
您可以通过在新语句中不指定特定类型来创建匿名类型:

opportunityInfo.Add(new {
    col1="value1",
    col2="value2",
    col3= "value3"});

这将起作用,但是由于您已将该列表显式声明为List< object&gt ;,因此您将无法使用诸如careerInfo [0] .col1之类的属性.如果您改为将其声明为List< dynamic&gt ;,您将可以访问匿名类的成员. (注意:我不确定数据绑定将如何与匿名类型一起使用,或者列表的类型是否会对行为产生任何影响.)

点击查看更多相关文章

转载注明原文:首页> C#>如何创建一个匿名对象列表 - 乐贴网