You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

LINQ技术问题:如何用数组替代多Where子句实现过滤

用filters数组简化LINQ过滤查询

你可以直接利用数组的Contains方法结合取反操作,替代重复的Where子句,让代码更简洁易维护:

方法一:使用查询表达式

string[] filters = new string[]{"a","b","c","d"};
var filtered = from n in bigList where !filters.Contains(n) select n;

方法二:使用方法链式调用

如果你习惯LINQ的方法式写法,也可以这样实现:

string[] filters = new string[]{"a","b","c","d"};
var filtered = bigList.Where(n => !filters.Contains(n));

扩展:忽略大小写的过滤

如果需要忽略字符串大小写进行匹配,可以给Contains方法传入比较器参数:

// 查询表达式写法
var filtered = from n in bigList 
               where !filters.Contains(n, StringComparer.OrdinalIgnoreCase) 
               select n;

// 方法链式写法
var filtered = bigList.Where(n => !filters.Contains(n, StringComparer.OrdinalIgnoreCase));

内容的提问来源于stack exchange,提问作者Marlon Davies

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 15:35:26