1. 程式人生 > 其它 >關於C#函式如何不定義型別直接返回一個集合型別的字串

關於C#函式如何不定義型別直接返回一個集合型別的字串

最近在做程式介面,每次都要為不同的介面定義不同的返回型別,由於前端只要求返回的資料式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);

本質上以上幾種方法基本都是一樣的,有點像是為了回字有幾種寫法了...
當然,還有最後一個“絕招”,直接拼接字串。但我想一般情況下不需要這麼幹