Michael_792099210
2016-05-28 02:13
采纳率: 33.3%
浏览 2.4k
已采纳

求教,急急急!!!arraylist 转换为byte数组时出错。

代码:
ArrayList sines = new ArrayList( OPCClientdev.OPCClient.ht.Values);
byte[] bytes = (byte[])sines.ToArray(typeof(byte));
报错:源数组中至少有一个元素无法被向下转换到目标数组类型。
ht.values为double型数据

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • threenewbee 2016-05-28 02:52
    已采纳
     List<byte[]> t = new List<byte[]>();
    foreach (double d in OPCClientdev.OPCClient.ht.Values)
    {
    t.Add(BitConverter.GetBytes(x));
    }
    byte[] bytes = new byte[t.Count * 8];
    for (int i = 0; i < t.Count; i++)
    {
    bytes[i * 8] = t[i][0];
    bytes[i * 8 + 1] = t[i][1];
    bytes[i * 8 + 2] = t[i][2];
    ...
    bytes[i * 8 + 7] = t[i][7];
    }
    
    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • threenewbee 2016-05-28 02:15
     byte[] bytes = OPCClientdev.OPCClient.ht.Values.OfType<double>().SelectMany(x => BitConverter.GetBytes(x)).ToArray();
    
    评论
    解决 无用
    打赏 举报
  • Michael_792099210 2016-05-28 04:57

    图片说明

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题