關於C#函式如何不定義型別直接返回一個集合型別的字串
阿新 • • 發佈:2022-03-18
最近在做程式介面,每次都要為不同的介面定義不同的返回型別,由於前端只要求返回的資料式JSON格式的串,所以想偷點懶。
一種是直接用object集合直接轉成串
var companies = new List<object>();
// ... sql的相關操作
while (reader.Read())
companies.Add(new { id = reader.GetString(0), text = reader.GetString(1) }); // 給集合賦值
// ... 省略了部分程式碼
return JSONhelper.ToJson(companies);
第二種是用集合類ArrayList,成員直接用匿名型別
var companies = new ArrayList();
// ... sql的相關操作
while (reader.Read())
companies.Add(new { id = reader.GetString(0), text = reader.GetString(1) }); // 給集合賦值
// ... 省略了部分程式碼
return JSONhelper.ToJson(companies);
第三種是用陣列,但匿名陣列需要先初始化一個型別,你需要告訴C#你數組裡面的是個什麼樣的資料(型別)。
var companies = new[] { new { id = "0000", text = "全部" } }.ToList(); // ... sql的相關操作 while (reader.Read()) companies.Add(new { id = reader.GetString(0), text = reader.GetString(1) }); // 給集合賦值 // ... 省略了部分程式碼 return JSONhelper.ToJson(companies);
本質上以上幾種方法基本都是一樣的,有點像是為了回字有幾種寫法了...
當然,還有最後一個“絕招”,直接拼接字串。但我想一般情況下不需要這麼幹