C#如何无需手动遍历从字符串数组中获取含指定子串的元素
你可以用.NET 内置的方法实现需求,不需要手动写遍历循环,常用方案有两种:
方案1:使用LINQ扩展方法(更通用,适用所有集合类型)
- 先引入对应命名空间
using System.Linq;
- 替换原有循环逻辑即可
- 如果你确认一定存在符合条件的.xml参数,直接用
First方法:
string strXMLFileName = args.First(arg => arg.Contains(".xml"));
- 如果需要兼容找不到参数的场景,和你原有逻辑完全对齐(找不到返回空字符串),可以用
FirstOrDefault加空值处理:
string strXMLFileName = args.FirstOrDefault(arg => arg.Contains(".xml")) ?? string.Empty;
该方法属于LINQ提供的通用扩展方法,所有实现了IEnumerable<T>的集合类型(数组、List
方案2:使用数组自带的静态方法(无需额外引入命名空间)
如果你不想引入LINQ命名空间,可以直接用数组的静态Find方法:
string strXMLFileName = Array.Find(args, arg => arg.Contains(".xml")) ?? string.Empty;
内容的提问来源于stack exchange,提问作者Lelouch
相关产品推荐
相关产品推荐

