Я пытаюсь найти равную подстроку в большом списке около 50 000 строк, вот так хорошо:
var results = myList.FindAll(delegate (string s) { return s.Contains(myString); });
, но он также ищет подстроку с частью слова, например,если я ищу "ты делаешь", то это также находит дополнительное "ты не делаешь", потому что содержит "ты делаешь".
Итак, этот ответ на мой предыдущий вопрос предположительно должен работать так, как мне нужно, но я не уверен, как получить список строк из соответствий регулярных выражений для конкретного кода:
foreach (string phrase in matchWordsList)
{
foreach (string str in bigList)
{
string[] stringsToTest = new[] { phrase };
var escapedStrings = stringsToTest.Select(s => Regex.Escape(s));
var regex = new Regex("\\b(" + string.Join("|", escapedStrings) + ")\\b");
var matches = regex.Matches(str);
foreach (string result in matches) /// Incorrect: System.InvalidCastException
{
resultsList.Add(result);
}
}
}
Получение строк из matches
непосредственно в исключение list
:
Произошло необработанное исключение типа 'System.InvalidCastException' в test.exe
Дополнительная информация: Невозможно привести объект типа 'System.Text.RegularExpressions.Match' к типу 'System.String'.
Итак, я пытаюсь выяснить, горячо ли преобразовать var matches = regex.Matches(str);
к списку