首页 > 解决方案 > 根据另一个通用列表中的条件获取列表

问题描述

我有 2 个班级叫ConfigClassField。config 类有一个通用列表ClassFieldsClassFields有一个通用的字符串列表,称为ClassErrors.

我有List<Config>一个变量,并且只想获取没有任何类错误的配置。

我已经尝试了以下代码,但似乎无法正确处理。

var list = _lstSyncConfigs.Where(f => f.SyncConfigClassFields.Where(g => g.AttributeErrors.Count == 0).Select(f).ToList();

标签: c#linq

解决方案


这也许是您正在寻找的。Where> All>不是 Any

var list = _lstSyncConfigs.Where(f => f.SyncConfigClassFields.All(g => !g.AttributeErrors.Any()))
                          .ToList();
// or

var list = _lstSyncConfigs.Where(f => f.SyncConfigClassFields.All(g => g.AttributeErrors.Count == 0))
                          .ToList()

注意:如果您的列表之一可能为空,您可能不会使用空条件运算符


推荐阅读