将Type1转换为type2使用带有Subselect投影的LINQ

时间:2011-03-03 10:37:48

标签: .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 new (item.Id, item.Name)).Cast<ListItem>();

1 个答案:

答案 0 :(得分:2)

即使您将其更改为new { item.Id, item.Name },演员表也会失败,因为您实际上并未选择 ListItem值。

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

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

如果您可以告诉我们更多关于ListItem的内容,那将会有很大帮助。

(还不清楚为什么你在标题中提及子选择预测 - 我无法看到与问题中的子选择相关的任何内容。)