Crear una matriz bidimensional a partir de un resultado Dapper

c# dapper linq

Pregunta

¿Es esta la menor cantidad de código que puedo usar para convertir un resultado de consulta Dapper en una matriz bidimensional?

var array =
    cn.Query(@"SELECT Id, Desc FROM Things")
        .Select<object, ArrayList>(d =>
        {
            return new ArrayList {((dynamic) d).Id, ((dynamic) d).Desc };
        });

Básicamente estoy construyendo un resultado que se devolverá como una respuesta JSON como esta:

[
  [1, "Thing one"],
  [2, "Thing two"],
  [3, "Thing two"],
]

Serializando una array usando:

string json = Newtonsoft.Json.JsonConvert.SerializeObject(array); 

produce el resultado correcto por lo que hace el trabajo, solo me pregunto si hay un atajo.

Respuesta aceptada

No estoy seguro acerca de la sintaxis de Dapper , pero ¿qué hay de dejar caer el ArrayList , sino devolver el object[] dentro de la selección y llamar a ToArray() al final:

var array =
    cn.Query(@"SELECT Id, Desc FROM Things")
        .Select(d => new object[] { d.Id, d.Desc })
        .ToArray();

Esto te dará un object[,] .

Si no te importa un resultado dynamic[,] puedes usar una versión aún más corta, omitiendo especificar el tipo de matriz real:

.Select(d => new [] { d.Id, d.Desc })


Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué