public List<RedisGeo> GeoPos(string key, params string[] members)
{
if (key == null)
throw new ArgumentNullException("key");
var cmdWithArgs = MergeCommandWithArgs(Commands.GeoPos, key.ToUtf8Bytes(), members.Map(x => x.ToUtf8Bytes()).ToArray());
var data = SendExpectComplexResponse(cmdWithArgs);
var to = new List<RedisGeo>();
for (var i = 0; i < members.Length; i++)
{
if (data.Children.Count <= i)
break;
var entry = data.Children[i];
if (entry.Children.Count == 0)
continue;
to.Add(new RedisGeo
{
Longitude = double.Parse(entry.Children[0].Data.FromUtf8Bytes()),
Latitude = double.Parse(entry.Children[1].Data.FromUtf8Bytes()),
Member = members[i],
});
}
return to;
}