Скажем, у меня есть большой массив символов с несколькими тысячами элементов:Найти небольшой массив символов в большой массив символов C#
char[] mobyDick = "..."
таким образом, что mobyDick.Length
= 2000.
Я хочу, чтобы выяснить, если определенный массив символов существует в этом массиве в таком порядке, и где * это. (Update:. Я на самом деле просто нужно знать, если это после определенного индекса в основном массиве)
char[] test = {'a','b','c','d'}
я мог бы сделать что-то вроде
char[] mobyDick = "..."
string mobyString = new string(mobyDick);
if (mobyString.Contains(new string(test)))
{ do stuff}
, но это не является оптимальным для моего ситуации, так как я пытаюсь написать парсер, который должен работать очень быстро, и я не хочу создавать и искать строки в каждой букве или около того.
Есть ли способ (алгоритмически или через некоторый метод .Net), чтобы узнать, содержит ли mobyDick
как массив символов abcd
как массив символов?
Имеет ли 'test' массив всегда 4 элемента? Вы действительно испытывали какие-либо проблемы с производительностью с помощью * convert to string и пытаетесь найти подстроку * решение? – MarcinJuraszek
тест может иметь 2-4 позиции на данный момент. Я еще не тестировал всю строку, но я ожидаю, что буду проходить вокруг строк длиной в несколько тысяч слов в среднем, поэтому я хотел попытаться заняться этим рано. – Arcandio
@ Аркандио, почему у вас есть персональные массивы? действительно ли порядок символов для сравнения? – Habib