我正在尋找一些有效的方法(在.NET中),如何查找某些字節列表中是否有字節序列,以及是否有任何第一個開始的索引。如何在列表中查找子列表的索引?
例如,讓我們說我有:
var sequence = new List<byte> { 5, 10, 2 };
var listOne = new List<byte> { 1, 3, 10, 5, 10, 2, 8, 9 };
var listTwo = new List<byte> { 1, 3, 10, 5, 2, 10, 8, 9 };
,其結果應該是我的順序是在那麼listOne和指數-1指數3(即它不存在)的listTwo。
當然,我可以遍歷列表int int和每個索引,並搜索下面的數字是否與我的序列匹配,但有沒有更有效的方法(例如使用擴展方法)?
當然,如果列表未排序,你將不得不迭代每個項目,直到找到序列?使用擴展方法或Linq不能奇蹟般地提高效率。 – 2010-08-20 09:48:29
我相當懷疑有這種類型的擴展的.NET庫。但你可以創建你自己的。 – 2010-08-20 09:58:05
我不得不補充說,我的序列很短(少數),但我搜索它的列表很長(數千個項目) – 2010-08-20 10:01:33