C# · 12月 22, 2021

c# – 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的字符串列表.

我想选择TOP的id和名字.

提前致谢.

解决方法 改变这个: 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 );