我有一个使用行过滤器的数据表。这是我需要的匹配类型的示例。我只使用星号。
我正在检查的字符串:“你好,你好吗”
过滤器:“*” - 匹配过滤器:“Hello*” - 匹配过滤器:“Hello” - 无匹配过滤器:“*how*” - 匹配过滤器:“Hello*you” - 匹配过滤器:“H*l*w* r*u" - 匹配
当我尝试使用超过 2 个星号时,我得到一个异常,说“字符串模式无效”。
我应该怎么办?
行过滤器不能在字符串中间使用 *。我会改用这样的东西。
用法:
var rows = dt.AsEnumerable()
.Where(x => x.Field<string>("Name").Like("H*l*w*r*u"));
喜欢的功能:
public static class Extensions
{
public static bool Like(this string s, string pattern, RegexOptions options = RegexOptions.IgnoreCase)
{
return Regex.IsMatch(s, pattern, options);
}
}
尝试 % 代替通配符过滤器:
System.Data.DataRow[] y = x.Select("Col2 LIKE 'smith[%]%'");
System.Data.DataRow[] y = x.Select("Col2 = 'smith%'");