2

我正在使用 Booksleeve 从 C# 代码与 Redis 进行通信。代码首先从哈希中检索所有字段和值:

var vals = await Redis.Hashes.GetAll(0, redisKey);

哈希包含具有 long 类型值的字段。

对 Hashes.GetAll 的调用将字段值作为字节数组返回。问题是,如何将此字节数组转换为 C# long

例如,如果我使用 Hashes.GetInt64 来检索值,我会得到 9684,这是正确的。但是我无法将检索到的字节数组转换为 long 以便它匹配这个值:

BitConverter.ToInt64(redisHashValue, 0) throws ArgumentException

BitConverter.ToInt32(redisHashValue, 0) returns 876099129

BitConverter.ToInt16(redisHashValue, 0) returns 13881
4

1 回答 1

1

好吧,首先将字节数组转换为字符串似乎可以解决问题:

long.Parse(Encoding.UTF8.GetString(redisHashValue));

但是有更好的解决方案吗?

于 2013-11-27T11:01:29.337 回答