我正在尝试从一个列表中删除另一个列表中的firmID.我真的不懂linq,但我很确定我需要使用它.
List<Firm> firms = GetBusinessDevelopmentFirms(database);
List<Firm> trackedFirms = GetAllCLIFirmsBeingTrackedByUser();
var result = firms.Contains(i => trackedFirms.Contains(i.FirmID));
Run Code Online (Sandbox Code Playgroud)
最后一行不起作用,系统说"未知方法包含(?)"即使我已经"使用System.Linq;" 在班级的顶部.
我的想法是从所有公司的名单中删除一个跟踪公司列表,以找到未跟踪的公司.
我希望这是有道理的.
Ali*_*eza 104
var result = firms.Except(trackedFirms); // returns all the firms except those in trackedFirms
Run Code Online (Sandbox Code Playgroud)
从上面的代码中,我假设您正在尝试从TrackedFirms中具有相应项目的公司获取条目.
List<Firm> results = Firms.Where(f => TrackedFirms.Any(t => t.FirmId == f.FirmId)).ToList();
Run Code Online (Sandbox Code Playgroud)
另一方面,如果你想要未跟踪的公司,那么它是:
List<Firm> results = Firms.Where(f => !TrackedFirms.Any(t => t.FirmId == f.FirmId)).ToList();
Run Code Online (Sandbox Code Playgroud)
我认为这应该有效
var result = firms.Where(x => !trackedFirms.Any(y => x.FirmID == y.FirmID));
Run Code Online (Sandbox Code Playgroud)
从各公司firms选择的公司,是不是在trackedFirms(至少这是我从你的问题理解)。
最好的方法适合Except()您的情况。但是,如果 List 对象与其他对象不同,您可以使用All()
firms.Where(x=> trackedFirms.All(y => y.FirmId != x.FirmId)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
35618 次 |
| 最近记录: |