我定义了一个:
byte[] a = new byte[15] { 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x6, 0x6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 };MessageBox.Show(a.LongLength.ToString());
//十五个数组byte[] b=a.Distinct().ToArray();
//经过这个功能处理过后,有数据丢失了
MessageBox.Show(a.Distinct().ToArray().LongLength.ToString ());
//得到7位,这个也不对,应该有8位MessageBox.Show(b[0].ToString()); //1
MessageBox.Show(b[1].ToString()); //2
MessageBox.Show(b[2].ToString()); //3
MessageBox.Show(b[3].ToString()); //4
MessageBox.Show(b[4].ToString()); //5
MessageBox.Show(b[5].ToString()); //6
MessageBox.Show(b[6].ToString()); //0这个不应该是6的吗?为什么是零?
有什么方法以数组形式截取有效的内容?
我要的结果希望是:
得到这个值{ 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x6, 0x6};分不够再加,能解决就好!
byte[] a = new byte[15] { 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x6, 0x6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 };MessageBox.Show(a.LongLength.ToString());
//十五个数组byte[] b=a.Distinct().ToArray();
//经过这个功能处理过后,有数据丢失了
MessageBox.Show(a.Distinct().ToArray().LongLength.ToString ());
//得到7位,这个也不对,应该有8位MessageBox.Show(b[0].ToString()); //1
MessageBox.Show(b[1].ToString()); //2
MessageBox.Show(b[2].ToString()); //3
MessageBox.Show(b[3].ToString()); //4
MessageBox.Show(b[4].ToString()); //5
MessageBox.Show(b[5].ToString()); //6
MessageBox.Show(b[6].ToString()); //0这个不应该是6的吗?为什么是零?
有什么方法以数组形式截取有效的内容?
我要的结果希望是:
得到这个值{ 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x6, 0x6};分不够再加,能解决就好!
http://msdn.microsoft.com/zh-cn/library/bb348436.aspx
{
byte[] a = new byte[15] { 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x6, 0x6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 };
List<byte> b = new List<byte>(a);
while (b.Count > 0 && b[b.Count - 1] == 0) b.RemoveAt(b.Count - 1);
foreach (byte item in b)
{
Console.Write(item + " ");
}
Console.ReadKey();
}
List<byte> b = new List<byte>(a);
如何再转回byte[] 这个类,
不然调用出错
与“PL.PA.ByteTString(byte[])”最匹配的重载方法具有一些无效参数
参数“1”: 无法从“System.Collections.Generic.List<byte>”转换为“byte[]”
http://msdn.microsoft.com/zh-cn/library/bb348436.aspx
byte[] a = new byte[15] { 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x6, 0x6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 };
int i = a.Length;
while (--i > 0 && a[i] == 0) ;
i++;
byte[] b = new byte[i];
Array.Copy(a, b, i);这样就快了。