- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我想调用 IDatabase.SortedSetAsync
(StackExchange.Redis)。此方法的签名是:
Task<bool> SortedSetRemoveAsync(RedisKey key, RedisValue member,
CommandFlags flags = CommandFlags.None);
Task<long> SortedSetRemoveAsync(RedisKey key, RedisValue[] members,
CommandFlags flags = CommandFlags.None);
我可以毫无问题地传递隐式转换为 RevisValue 的单个值(例如字符串)。但是,如果我尝试传入一个数组...
var key = "MYKEY";
var values = new string[] { "A", "B", "C" };
await database.SortedSetRemoveAsync(key, values);
...然后编译器不知道如何将字符串[] 转换为RedisValue[]。
我管理转换的唯一方法是进行每项转换:
var values2 = values.Select(s => (Redisvalue) s).ToArray();
await database.SortedSetRemoveAsync(key, values2);
...我不确定这是否是最好的方法。
很奇怪,当有需要数组的 API 方法时,很难传递数组... unit tests通过传入一个空的 RedisValue[] 数组并完全绕过这个问题,采取一个简单的方向。
将数组参数传递给接受 RedisValue[] 数组的 StackExchange.Redis 方法的推荐方法是什么?
最佳答案
选择的解决方案是正确的,但使用 Array.ConvertAll 会更有效率因为它知道数组元素并且可以按索引迭代元素。
var values = new string[] { "A", "B", "C" };
var redisValues = Array.ConvertAll(values, item => (RedisValue)item);
注意你也可以像这样创建列表
RedisValue[] values = { "A", "B", "C" };
关于c# - 如何将数组传递给采用 RedisValue[] 的 StackExchange.Redis 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28700501/
我有一个从 StackExchange.Redis 客户端返回的数组 RedisValue[]。我想获取数组中的每个值(实际上是 JSON 字符串)并将它们连接在一起以获得可以返回给客户端的有效 JS
这是关于 RedisClient ,这是一个 C++ 客户端。 我知道您不能在 Redis 中存储整数(在内部转换)。 RedisSyncClient::command 本身不支持整数,因为 Redi
我想调用 IDatabase.SortedSetAsync (StackExchange.Redis)。此方法的签名是: Task SortedSetRemoveAsync(RedisKey key,
我开始使用 StackExchange.Redis用于存储键值对的客户端。 我有一个嵌套的动态对象 ( JObject ),我将该对象展平为一个键值结构,如下所示: 让我们假设 JObject看起来像
我正在尝试为 Strathweb.CacheOutput.WebApi2 创建 Redis 提供程序,但尝试从 byte[] -> RedisValue -> byte[] 进行转换时返回 null。
我是一名优秀的程序员,十分优秀!