我有一个关于如何比较两个字符串的问题.
这是代码.
string stringA = "This is a test item";
string stringB = "item test a is This";
Run Code Online (Sandbox Code Playgroud)
显然,stringB包含来自stringA的每个单词,但顺序不同.
我想要的结果应该是正确的.
我的问题是,我该怎么办?我试图使用.Contains()方法,但结果为FALSE.
感谢大家.
更新
谢谢大家的亲切回复.
这是我的澄清
我实际上是使用LINQ和EF构建数据库搜索功能.
假设一个项目的名称为"This is a test item".
如果用户输入"test a is this",我希望该功能足够智能以捕获上述项目.
有什么建议吗?
另一个更新
再次感谢你的帮助.
我喜欢Peter Ritchie的代码密码,Dave和EdFred的建议.
'String.Split'带有空格分隔符的单词,将结果数组排序到List中,然后比较列表.例如:
var x = new List<string>(stringA.Split(' '));
x.Sort();
var y = new List<string>(stringB.Split(' '));
y.Sort();
bool areEqual = x.SequenceEqual(y);
Run Code Online (Sandbox Code Playgroud)
更新如果您想要不区分大小写:
var x = new List<string>(stringA.Split(' '));
x.Sort();
var y = new List<string>(stringB.Split(' '));
y.Sort();
bool areEqual = x.SequenceEqual(y, StringComparer.OrdinalIgnoreCase);
Run Code Online (Sandbox Code Playgroud)
但是,如果您正在寻找将在SQL Server中执行的内容,那么您可能还需要其他内容.