很龌龊的办法。string a1=string.Empty,b1=string.Empty;
for(int i=0;i<a.Lenth;i++)
   a1+=a[i].ToString;
for(int i=0;i<b.Lenth;i++)
   b1+=b[i].ToString;
int Result=a1.IndexOf(b1);呵呵,见笑了。

解决方案 »

  1.   

    挺好,byte[]不好转化成String;
    用String找位置是最合适的了
      

  2.   

    谢谢,但这个办法我试过了,不行,如何a数组中有一些特殊值如0X0D,0X00等,这个数组不能完全转换成STRING,只能转换一部分。还有什么好的办法吗?
      

  3.   

    用StringBuilder
    byte[] a = new byte[]{01, 03, 02, 15, 05, 05, 02};
    byte[] b = new byte[]{05,05};
    StringBuilder sba = new StringBuilder();
    StringBuilder sbb = new StringBuilder();
    sba.Append(",");
    sbb.Append(",");
    for(int i=0;i<a.Length;i++)
    {
    sba.Append(a[i]);
    sba.Append(",");
    }
    for(int i=0;i<b.Length;i++)
    {
    sbb.Append(b[i]);
    sbb.Append(",");
    }
    string a1 = sba.ToString();
    string b1 = sbb.ToString();
    int Result=a1.IndexOf(b1);
      

  4.   

    抱歉,最后不是直接IndexOf,还是要自己处理一下的。
      

  5.   

    最后应该是:
    int Result = a1.Substring(0,a1.IndexOf(b1)).Split(",".ToCharArray()).Length -1;