從Dapper結果創建二維數組

c# dapper linq

這是我用來將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 ,而是在select中返回object[]並在結尾調用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 })


許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因