C# %“.search.”在C中为%
我使用此代码从DGV中选择一行C# %“.search.”在C中为%,c#,sql,search,equals,C#,Sql,Search,Equals,我使用此代码从DGV中选择一行 if (row.Cells[1].Value.ToString().Equals(searchValue)) { row.Selected = true; break; } 有类似的吗 %.$searchvalue.% 从sql到在C中使用,所以它会发现看似入口而不仅仅是入口?使用string.Contains而不是Equals if (row.Cells[1].Value.ToString().Contains(searchValue)) {
if (row.Cells[1].Value.ToString().Equals(searchValue))
{
row.Selected = true;
break;
}
有类似的吗
%.$searchvalue.%
从sql到在C中使用,所以它会发现看似入口而不仅仅是入口?使用string.Contains而不是Equals
if (row.Cells[1].Value.ToString().Contains(searchValue))
{
row.Selected = true;
break;
}
如果您只想找到字符串的入口,可以使用StartsWith,如下所示
if (row.Cells[1].Value.ToString().StartsWith(searchValue))
{
row.Selected = true;
break;
}
if (row.Cells[1].Value.ToString().EndsWith(searchValue))
{
row.Selected = true;
break;
}
如果您只想找出字符串的结尾,可以使用下面的EndsWith
if (row.Cells[1].Value.ToString().StartsWith(searchValue))
{
row.Selected = true;
break;
}
if (row.Cells[1].Value.ToString().EndsWith(searchValue))
{
row.Selected = true;
break;
}
如果您不太担心性能,可以在上述情况下使用contains。一般情况下,如果您想模拟类似sql的构造,可以尝试使用正则表达式:
就你而言
if (Like(row.Cells[1].Value.ToString(), searchValue)) { ... }
StartWith的可能副本将只查找第一个单词的第一个字符,还是查找任何单词的第一个字符?如果我使用contains,性能会有什么影响?它只查找第一个单词的第一个字符。Contains使用不同的算法,它需要计算比StartsWith或EndsWith更多的组合。因此,它用于不知道所需字符串匹配器所在位置的情况。如果您对需要搜索的内容非常确定,并且在开头或结尾都会出现,那么您可以使用这些。否则,Contains是一个不错的选择。如果你想检查每个单词的前几个字符,那么你需要按空格分割字符串,并在每个片段中循环检查它是否以匹配的字符串开始。非常感谢Gilad!!