使用LINQ查询,可以使用
Contains()
方法对字符串进行部分匹配。例如,以下代码段将在
myList
中查找包含 "hello" 的字符串:
List<string> myList = new List<string>{"hello world", "goodbye", "hi there"}
List<string> matches = myList.Where(x => x.Contains("hello")).ToList()
此代码段将返回一个 matches 列表,其中包含 "hello world" 这个字符串。
要使用通配符进行匹配,可以使用 String.Contains() 方法的变体,即 String.Contains(string, StringComparison) 方法。此方法允许使用 StringComparison 枚举来指定不同的匹配选项。
例如,以下代码段将在 myList 中查找以 "he" 开头的字符串:
List<string> myList = new List<string>{"hello world", "goodbye", "hi there"}
List<string> matches = myList.Where(x => x.Contains("he", StringComparison.OrdinalIgnoreCase)).ToList()
这将返回一个 matches 列表,其中包含 "hello world" 和 "hi there" 两个字符串,因为它们以 "he" 开头。
使用正则表达式
另一种方法是使用正则表达式。可以使用 Regex.IsMatch() 方法对字符串进行正则表达式匹配。例如,以下代码段将在 myList 中查找包含 "he" 和 "llo" 的字符串:
List<string> myList = new List<string>{"hello world", "goodbye", "hi there"}
List<string> matches = myList.Where(x => Regex.IsMatch(x, "he.*llo", RegexOptions.IgnoreCase)).ToList()
此代码段将返回一个 matches 列表,其中包含 "hello world" 这个字符串。
在这个例子中,正则表达式 "he.*llo" 用于匹配以 "he" 开头和以 "llo" 结尾的字符串。RegexOptions.IgnoreCase 参数指定匹配不区分大小写。
以上就是在C#的List中使用通配符进行字符串匹配的方法。希望能够帮助到你。