c# - 检查数据表中是否存在字符串的子字符串

标签 c# string-search

我有一个像这样的数据表:

  column1    column2
----------- ----------
1  abc d      Alpha
2  ab         Gamma
3  abc de     Harry
4  xyz        Peter

我想检查数据表中是否存在字符串的子字符串。

例如如果我要查找的字符串是“abc defg”,则应该返回记录3(虽然记录1也是匹配的,但记录3按顺序有更多常见字符)。

我无法找到任何如上所述的搜索方式。 任何帮助、指导将不胜感激。

最佳答案

这将是一个两步过程。

  1. 过滤表中匹配的行。这可以通过 string.Contains 来完成方法。在 LINQ 中,这看起来像:
const string myText = "abc defg";
IEnumerable<Row> matches = MyTable.Where(row => myText.Contains(row.Column1));
  • 选择最长的匹配项。在 LINQ 中,这可能看起来像这样。
  • Row longestMatch = matches.OrderByDescending<Row, int>(row => row.Column1.Length).First();
    

    关于c# - 检查数据表中是否存在字符串的子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66806876/

    相关文章:

    c# - 为什么在当前类是子类时对方法或属性使用 sealed

    c# - 如何获取我的 Windows 应用商店应用程序的名称和版本信息?

    c# - 在 ASP.net 中通过 Razor 输出电子邮件的语法

    c - 在c中的文件中搜索字符串

    c++ - 在 C++ 中搜索文件中的字符串以获得非常大的输入的有效方法

    c - 从字符数组中获取当前单词的最有效方法

    c# - 在字符串集合中搜索的最快方法

    c# - 关于 As<>() 方法在 AutoMapper 中的作用的详细信息

    c# - 在 C# 中强制命名参数

    iphone - 用核心数据实现 "Did you mean?"