1
我有一个不可变的列表。如何使用Select()扩展方法将对象添加到不可变的通用列表中
在下面的g.Select(...)我做一个.ToList()放入MemberIdList。我不想用ToList()创建一个新的List,而是我想将每个r.Field字符串添加到单元对象内的不可变列表中。
我该怎么做?
var groupedCollection = table.AsEnumerable()
.GroupBy(row => new
{
UType = row.Field<string>("UnitType"),
UZoom = row.Field<string>("UnitZoom"),
MZoom = row.Field<string>("MemberZoom"),
});
var unitCollection = groupedCollection
.Select(g => new Unit
{
UnitType = g.Key.UType,
UnitZoom = g.Key.UZoom,
MemberZoom = g.Key.MZoom,
MemberIdList = g.Select(r => r.Field<string>("TestId")).ToList(),
});
List<Unit> units = unitCollection.ToList();
public class Unit
{
public Unit()
{
MemberIdList = new List<String>();
}
public String UnitType { get; set; }
public String UnitZoom { get; set; }
public String MemberZoom { get; set; }
public int MemberOrder { get; set; }
public List<String> MemberIdList { get; private set; }
}
MemberIdList.AddRange(...) ? – 2011-06-09 18:26:11
在我的上下文中MemberIdList.AddRange(g.Select(r => r.Field(“TestId”)));不起作用。输入MemberIdList。没有AddRange。 –
msfanboy
2011-06-09 18:32:11
@msfanboy你确定它是'List'然后呢?这绝对有AddRange。你当然需要告诉它的实例,即。 Obj.MemberIdList.AddRange() –
2011-06-09 18:40:20