迭代并动态创建新的匿名类型

时间:2009-12-15 21:29:42

标签: c# c#-3.0 anonymous-types

我有这种形式的匿名类型:

new List<MyList>()
{
   new Column { Name = "blah", Width = 100, Hidden = true },
   new Column { Name = "blah1", Width = 60, Hidden = false }
} 

如何动态创建列表中的内容,例如:

new List<MyList>()
{
    foreach (var columns in col) 
    {
       new Column { Name = columns.Name ... }
    }
} 

即使col返回正确的数据类型,上面的例子也是不可接受的,我看不出原因。

3 个答案:

答案 0 :(得分:7)

您尝试遍历对象初始化程序块内的集合(thx to Luke)。

首先尝试创建列表,然后填写它,

var list = new List<MyList>();

foreach (var columns in col) 
{
    list.Add(new Column { Name = columns.Name ... });
}

答案 1 :(得分:2)

不确定你究竟在问什么,但是你尝试过以下形式:

col.Select(c => new Column {Name = c.Name ... etc}).ToList();

答案 2 :(得分:1)

可能像

var theList = new List<MyList>();
col.ForEach(c=> theList.Add( new Column(){ Name=c.Name ... etc } ));