123-xiaoming 2020-07-02 09:28 采纳率: 25%
浏览 381
已采纳

C#中,在一个数组中检索在另一个数组,如果存在返回数组的位置,如果不存在返回-1,如何实现?

C# 实现

例如
byte[] newbyte=new byte[]{0x7E,0x20,0x30,0x2F,0x19,0x2C};
byte[] b=new byte[]{0x20,0x30};
检索数组b在数组newbyte中的位置,
理论上应该返回1

有什么方法可以实现这个功能吗?

  • 写回答

1条回答 默认 最新

  • qq_28838019 2020-07-02 10:37
    关注

    static int search(byte[] haystack, byte[] needle)
    {
    for (int i = 0; i <= haystack.Length - needle.Length; i++)
    {
    if (match(haystack, needle, i))
    {
    return i;
    }
    }
    return -1;
    }

    static bool match(byte[] haystack, byte[] needle, int start)
    {
    if (needle.Length + start > haystack.Length)
    {
    return false;
    }
    else
    {
    for (int i = 0; i < needle.Length; i++)
    {
    if (needle[i] != haystack[i + start])
    {
    return false;
    }
    }
    return true;
    }
    }

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 怎样采集或者其它途径拿到全国最新个体工商户数据
  • ¥20 我是一名大学生,想学习java是自学还是报培训班呢
  • ¥15 pycharm该如何爬取网易云歌曲下的评论?
  • ¥15 java调用sap webservice问题
  • ¥20 如何完全复现何恺明resnet论文里的结果,有代码吗,获得论文中的结果(如下图)
  • ¥15 mysql如果表行行数小于1000条还需要分区吗
  • ¥20 有关matlab自定义特殊算符的问题
  • ¥15 第15届蓝桥杯选拔赛斗鱼养殖场
  • ¥15 在vivado的FIFO使用中,FIFO有没有提供可以输出内部存储空间状态的端口?
  • ¥15 C++ QT内存数据匹配对比指导