%".search."% 在 C# 中

%".search."% in C#

我有此代码 select 来自 DGV 的一行。

if (row.Cells[1].Value.ToString().Equals(searchValue))
{
    row.Selected = true;
    break;
}

有没有类似的

%".$searchvalue."%

从sql改用在C#中,所以会发现貌似入口不只有一个?

使用string.Contains代替等于

if (row.Cells[1].Value.ToString().Contains(searchValue))
{
    row.Selected = true;
    break;
}

如果您只想找出字符串的 entrances,您可以使用 StartsWith,如下所示。

if (row.Cells[1].Value.ToString().StartsWith(searchValue))
{
    row.Selected = true;
    break;
}

如果您只想找出字符串的 endings,您可以使用 EndsWith,如下所示。

if (row.Cells[1].Value.ToString().EndsWith(searchValue))
{
    row.Selected = true;
    break;
}

如果你对性能不是很在意的话,以上情况可以使用contains

一般情况下,如果你想模仿 sql LIKE构造你可以尝试正则表达式:

public static bool Like(String value, String like) {
  if (String.IsNullOrEmpty(like) || String.IsNullOrEmpty(value))
    return false; // or throw exception

  String pattern = "^" + Regex.Escape(like).Replace("%", ".*").Replace("_", ".") + "$";

  return Regex.IsMatch(value, pattern);
}

.....

String source = "abcdef";
// true
bool result = Like(source, "%b_d%");

你的情况

if (Like(row.Cells[1].Value.ToString(), searchValue)) { ... }