-6

我有一个锯齿状字节数组byte[][],我正在尝试获取它的子数组项的最大值。

我创建了一个方法:

private byte[] Max(byte[][] arrBytes)
{
    var max = arrBytes[0];
    foreach (var arr in arrBytes)
    {
        if (max != null && arr != null)
            if () // => How to say max > arr
                max = arr;
    }
    return max;
}

如何从上述方法返回最大字节数组?

编辑 对于所有询问单词的度量或定义的人,bigger我说锯齿状数组包含 SQLServer 的(时间戳)数据类型(varbinary(8)),数据如下所示

在此处输入图像描述

字节数组表示(例如:0x00000000013F3F3F)

4

2 回答 2

3

也许转换long和比较会帮助你?

// Note: you should ensure that the arrays have at least 8 bytes!
// Although from your edits, it sounds like your "jagged" array isn't jagged at all
if (BitConverter.ToUInt64(max,0) > BitConverter.ToUInt64(arr,0)) 
{
    // do whatever.
}

但要注意字节顺序差异。如果您的时间戳只是多个刻度,这将起作用。如果它实际上是一个日期,您需要找出适当的转换。

于 2013-10-08T14:34:04.527 回答
0

你在找这样的东西吗?

    private byte[] Max(byte[][] arrBytes)
    {
        byte[] max = new byte[arrBytes.GetLength(0)];
        int i = 0;
        foreach (byte[] arr in arrBytes)
        {
            byte m = 0;
            foreach (byte b in arr)
            {
                m = Math.Max(m, b);
            }
            max[i] = m; ++i;
        }
        return max;
    }
于 2013-10-08T14:52:36.047 回答