2011-03-03 44 views
0

在下面的代码中,我需要TList的项目ID和名称,并将它们转换为List。我怎么做?将Type1转换为type2使用带有Subselect投影的LINQ

List<ListItem> nameItems = new List<ListItem>(); 
TList<ProductCode> items = GetAllProductCode(); 
//WANT TO SUBSELECT ID, NAME OF ITEMS IN nameItems 
nameItems = (from item in items select new (item.Id, item.Name)).Cast<ListItem>(); 

回答

2

那么即使你已经改变了对new { item.Id, item.Name }投将失败,因为你没有真正选择ListItem值。

您需要编写一个投影,创建ListItem的实例。目前尚不清楚这是否是一个内置ListItem类或者你自己的,但这样的事情可能是你想要什么:

List<ListItem> nameItems = items.Select(item => new ListItem(item.Id, item.Name)) 
           .ToList(); 

如果你能告诉我们更多关于什么ListItem是,这将帮助许多。

(这也不清楚为什么你在标题中提及子选择投影 - 我看不出与问题内的子选择有关的任何东西。)

相关问题