c# - 在 C# 中查找字节数组

标签 c# arrays indexing

我想知道在 C# 中从另一个字节数组中查找子数组索引的最佳方法是什么。例如,如果我将以下内容作为我的主数组。

byte[] inputArray = {0xFF,0xDD,0xA,0xF,0x1,0x2,0x78,0x05,0x00,0x01};
byte[] tobeFound = {0x78,0x05};

现在我想在 inputArray 中找到字节数组“tobeFound”。我应该得到索引 6。这是一个简短的例子。两个数组都可以非常大。

那我应该去干什么? LINQ,Array.IndexOf ??我也需要有好的表现。

感谢您的指点和分享一些经验!

最佳答案

您可以使用经过充分测试的 Boyer-Moore string search algorithm ,因为您本质上是在搜索字符串(字节可以被视为字符)。

这似乎是 a decent implementation of Boyer-Moore in C#用于字符串(连同 turbo Boyer-Moore 和另一个我从未听说过的)。将它们转换为使用 Byte[] 应该是微不足道的。

关于c# - 在 C# 中查找字节数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7990957/

相关文章:

c# - Json在C#中反序列化

c - 数组运算符 "-"(连字符或破折号)在 C 语言中的含义和作用是什么?

php从字符串调用数组

python - numpy/: colon equivalent 中的数组赋值

python - Algolia 索引的 ObjectID 列表

c# - 如何递归返回直接对象中 'toy' 项目的数量以及该对象的所有直接子对象

c# - 如何正确处理泛型类中的错误?

c# - 依赖注入(inject)AddSingleton实例化多次

java - Java中无需排序即可查找众数和众数频率

database - 根据数据签名对数据进行分类