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

Check if substring of a string exists in datatable

我有一个这样的数据表:

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

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

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

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

这将是一个两步过程。

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