我希望能够像使用 sql 中的 like 运算符一样使用 contains 函数。因此,当我从列表或诸如“这是我的字符串”之类的任何内容中调用 .contains(%This%%%%%is%%my%string%%) 时,该函数将返回true。我做了很多搜索,似乎很多人都喜欢这个功能。那么如何做到这一点,或者如何制作具有相同功能的自定义功能?
编辑谢谢您的快速回复。我能够在我自己的自定义 Like 函数中使用正则表达式。下面是任何想要使用类似于 SQL Like 的东西的人的代码。在此代码中,用户将输入数据库值,然后将该值中的空格替换为 .* 以忽略值之间的任何内容。就像在 SQL 中使用 % 替换空格和值一样。然后,我可以在我正在搜索的名为 testValue 的字符串值上使用 .Like 来返回 true 或 false,具体取决于字符串中的单词或其他内容。我还添加了 ToUpper 以忽略此情况。//C#like函数
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
namespace sqllinqstuff
{
class Program
{
static void Main(string[] args)
{
string testValue = "Big RED Car";
string databaze = "big red CAR";
string databaze3 = databaze.Replace(" ", ".*");
databaze3 = databaze3.Replace(" ", ".*");
Console.WriteLine(databaze3);
Console.WriteLine(testValue.Like(databaze3));
Console.Read();
}
}
public static class CaseyStringExtension
{
public static bool Like(this string str,string value)
{
if (!string.IsNullOrEmpty(str))
{
Regex r = new Regex(value.ToUpper());
if (r.IsMatch(str.ToUpper()))
return true;
}
return false;
}
}
}
这个测试的结果将是真实的。