Création d'un tableau à deux dimensions à partir d'un résultat Dapper

c# dapper linq

Question

Est-ce la moindre quantité de code que je peux utiliser pour convertir un résultat de requête Dapper en un tableau à deux dimensions?

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

Je suis en train de construire un résultat à retourner comme une réponse json comme ceci:

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

Sérialisation array utilisant:

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

produit le résultat correct donc il fait le travail, je me demande simplement s'il y a un raccourci?

Réponse acceptée

Pas sûr de la syntaxe de Dapper , mais qu'en est-il de la suppression de ArrayList , mais plutôt de renvoyer object[] dans select et d'appeler ToArray() à la fin:

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

Cela vous donnera un object[,] .

Si vous ne vous souciez pas du résultat de dynamic[,] vous pouvez utiliser une version encore plus courte, en omettant de spécifier le type de tableau actuel:

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



Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi