2
我想致電IDatabase.SortedSetAsync
(StackExchange.Redis)。此方法的簽名是:如何將數組傳遞給採用RedisValue []的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方法的推薦方法是什麼?