c# - 过滤多个列表值
问题描述
我有一个包含元素列表的主列表。我想根据两个过滤条件从列表中过滤掉一些记录。我想根据域和组织进行过滤,如下所示。没有 foreach 循环可以在 mainLst 上进行此比较吗?
domains = "ABC/XYZ,RTG,YUT,WED"; //Comma seperated values
orgs = "FA,TR,WE,QW,ER"; // Comma seperated values
MainLst contains single domain and org for each record.
var mainLst = MasterData();
var filterDomain = lst.Where(c => c.domain == domains && c.orgs == orgs).ToList();
解决方案
像这样的东西应该工作:
mainLst.Where(c => domains.Split(',').Contains(c.domain) &&
orgs.Split(',').Contains(c.org)).ToList();
这将通过 ', ' 拆分域和组织,得到 2 个您可以在过滤器中使用的列表。
然后,LINQ 查询会针对 mainLst 中的每个项目检查域和组织是否包含在这些列表中,并根据需要应用这两个过滤器。
推荐阅读
- ios - Firestore 数据库中的数据未显示在 tableview 中
- list - 具有最大值的列表名称
- android - '未来
' 在 Flutter 中尝试访问 Future SmsMessage 变量的主体时,没有实例 getter 'body' 错误 - sql-server - 在 SQL Server 中使用 XML 数据插入表时出错
- python - 如何在熊猫中减去两个相同的数据帧
- java - 人脸检测和使用边界框提取人脸并创建新位图
- r - 如何在非常大的数据集中找到异常值变量?
- android - 我在测试我的 android 应用程序时遇到问题,该应用程序在我的设备上运行良好,但在 MI 手机上崩溃
- keyboard - Ubuntu VMWare 虚拟机中的大写锁定问题
- ios - Swift 为现有的孩子增加价值