C# 比较两个字符串的匹配词

标签 c# string

我有两个字符串,其中包含以空格分隔的字母和数字。前任 “elza7ma wa2fa fel matab”和“2ana ba7eb el za7ma 2awy 2awy”

比较这两个字符串以确定它们是否有共同词的最快方法是什么?

我尝试使用 string.split 拆分其中一个,并对整个单词数组使用 string.compare。但这非常慢,因为我要比较很多字符串。

最佳答案

LINQ 解决方案

"elza7ma wa2fa fel matab".Split()
                         .Intersect("2ana ba7eb el za7ma 2awy 2awy".Split())
                         .Any();

// as a string extension method
public static class StringExtensions
{
    public static bool OneWordMatches(this string theString, string otherString)
    {
        return theString.Split().Intersect(otherString.Split()).Any();
    }
}

// returns true
"elza7ma wa2fa fel matab 2ana".OneWordMatches("2ana ba7eb el za7ma 2awy 2awy");

关于C# 比较两个字符串的匹配词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3785064/

相关文章:

c# - 处理 ListView 中的 MouseMove、MouseDown、MouseUp 事件以拖动无边框表单

C 根据带指针的字符串输入打印特定字符

java - 提取斜线之间的字符串

c# - Powershell 线程与 C# 线程

c# - 在 C# 中运行 Web 服务时 mongodb 数据丢失

java - 如何在java中将给定的数字减少为两位数

c# - C# 中的自定义字符串比较

Xcode 中的 C++ 字符串

javascript - 我的 Highchart 偶尔显示(绘制)我的数据,而不是从左到右以干净的线条显示

c# - 从字符串中提取年份