VB.NET中能否用LINQ筛选以另一List(of String)元素结尾的字符串?
用LINQ筛选以后缀列表任意元素结尾的名称项
直接用Where结合Any就能实现需求,核心逻辑是遍历每个名称,检查它是否以后缀列表里的任意一个元素结尾:
代码示例
// 示例数据 List<string> nameList = new List<string> { "report.docx", "photo.png", "data.csv", "log.txt" }; List<string> suffixList = new List<string> { ".docx", ".txt" }; // LINQ筛选逻辑 var filteredNames = nameList.Where(name => suffixList.Any(suffix => name.EndsWith(suffix))).ToList();
补充说明
- 如果需要忽略大小写匹配(比如兼容
.TXT和.txt这类情况),可以给EndsWith添加匹配规则:name.EndsWith(suffix, StringComparison.OrdinalIgnoreCase) - 这个写法完全替代嵌套
foreach循环,逻辑清晰且代码更简洁。
内容的提问来源于stack exchange,提问作者Jeff Newbill
相关产品推荐
相关产品推荐

