![在此输入图片说明] [1]
console.WriteLine(client.ZRangeByScore(" myset",0,10,0,0).ToString());
zrangebyscore
命令是byte [][]
的类型。我们有机会将其转换为字符串吗?
我写这样的时候没有错误,但输出是
System.Byte[][]
while(reader.Read()){
client.Lists["name"].Append(reader["username"].ToString());
client.Lists["name"].GetAll();
client.Lists["followers"].Append(reader["reach"].ToString());
client.Lists["followers"].GetAll();
double [] array4=new double[client.LLen("followers")];
for(int i=0;i<client.LLen("followers");i++){
array4[i]=Convert.ToDouble(client.GetItemFromList("followers",i));
}
for(int i=0;i<client.LLen("name");i++){
client.AddItemToSortedSet("myset", client.GetItemFromList("name", i), array4[i]);
}
Console.WriteLine( client.ZRangeByScore("myset", 0, 10, 0, 0));
这是上面代码的某些部分.ZRangeByScore是一个命令,它给出了有序集的输出,它在servicestack中的定义就像那样&#39; byte [] [] RedisNativeClient.ZRangeByScore(string setID,long min,long max,int?skip,int?take)&#39; 我可以在redis客户端中获得正确的输出,但我也想在控制台应用程序上显示它
答案 0 :(得分:1)
当我这样写时,我没有错误,但输出是
System.Byte [] []
这意味着您在System.Byte [] []上调用.ToString()。
ToString()方法没有通用实现来显示这个多维数组的所有值,因此您必须自己完成。您可能希望迭代维度并将每个维度放入其自己的行(表格格式)或您选择的任何人类可读的控制台输出。必须在现在实际调用ToString()的地方完成此操作。
实施例: 你这样做:
console.WriteLine( client.ZRangeByScore("myset", 0, 10, 0, 0).ToString());
您可以将其更改为:
var byteArray = client.ZRangeByScore("myset", 0, 10, 0, 0);
foreach(var array in byteArray)
{
Console.WriteLine("this array has the size " + array.Length);
foreach(var element in array)
{
Console.Write(element + "");
}
}
[上面的代码没有经过测试,如果构建失败就纠正它] 您可能希望将其包装到函数中或覆盖类中的ToString()(然后您可能想为此创建一个类...)
这只是一种完成方式。