.net 使用LINQ和子选择投影将Type1转换为type2

.net 使用LINQ和子选择投影将Type1转换为type2,.net,asp.net,linq,.net,Asp.net,Linq,在下面的代码中,我需要项目Id和TList的名称,并将它们转换为List。我该怎么做 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 n

在下面的代码中,我需要项目Id和TList的名称,并将它们转换为List。我该怎么做

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>();
List name items=new List();
TList items=GetAllProductCode();
//要在nameItems中选择项的ID和名称吗
nameItems=(从items中的item选择new(item.Id,item.Name)).Cast();

即使您将其更改为
新建{item.Id,item.Name}
转换也会失败,因为您实际上没有选择
列表项

您需要编写一个投影来创建
ListItem
的实例。不清楚这是一个内置的
ListItem
类还是您自己的类,但类似这样的东西可能正是您想要的:

List<ListItem> nameItems = items.Select(item => new ListItem(item.Id, item.Name))
                                .ToList();
List-nameItems=items.Select(item=>newlistItem(item.Id,item.Name))
.ToList();
如果您能告诉我们更多关于什么是
ListItem
,那将非常有帮助

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