Является ли это наименьшим количеством кода, который я могу использовать для преобразования результата запроса Dapper в двумерный массив?
var array =
cn.Query(@"SELECT Id, Desc FROM Things")
.Select<object, ArrayList>(d =>
{
return new ArrayList {((dynamic) d).Id, ((dynamic) d).Desc };
});
Я в основном создаю результат, который будет возвращен как ответ json следующим образом:
[
[1, "Thing one"],
[2, "Thing two"],
[3, "Thing two"],
]
Сериализация array
с использованием:
string json = Newtonsoft.Json.JsonConvert.SerializeObject(array);
дает правильный результат, поэтому он выполняет задание, мне просто интересно, есть ли ярлык?
Не уверен в синтаксисе Dapper
, но как насчет того, чтобы ArrayList
, но вместо этого возвратить object[]
внутри select и вызвать ToArray()
в конце:
var array =
cn.Query(@"SELECT Id, Desc FROM Things")
.Select(d => new object[] { d.Id, d.Desc })
.ToArray();
Это даст вам object[,]
.
Если вы не возражаете против dynamic[,]
вы можете использовать еще более короткую версию, мой пропущенный с указанием фактического типа массива:
.Select(d => new [] { d.Id, d.Desc })