2011-04-11 18 views
6

我觉得我的问题很容易,但我在LINQ新手物品......所以我在这里LINQ的 - 除了一个列表与另一

困难时期我的系统调用服务,叫serviceTOP,返回我的列表itemTOP {Id, Name}

这些ItemsTOP不在我的系统中,但用户可以选择导入到系统的哪个itemTOP。

进口ItemsTOP成为一个对象Item { Id, IdTOP, Name }

因此,当系统调用serviceTOP,他们展示给用户之前,我必须过滤从列表中已导入的项目。

让我们去代码:

IList<ItemsTOP> listTOP = new ServiceTOP().GetItemsTOP(); 

IList<Items> list = new WCFServiceClient().GetItems(); 

var filteredListTOP = listTOP.Select(i => i.Id).Except(i => i.IdTOP); 

这类作品,但它返回一个只包含ID字符串列表。

我想选择顶部的ID和名称。

在此先感谢。

回答

8

更改此:

var filteredListTOP = listTOP.Select(i => i.Id).Except(i => i.IdTOP); 

要这样:

var filteredListTOP = listTOP.Select(i => new { ID = i.id, Name = i.Name}).Except(i => i.IdTOP);