关于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);
本质上以上几种方法基本都是一样的,有点像是为了回字有几种写法了...
当然,还有最后一个“绝招”,直接拼接字符串。但我想一般情况下不需要这么干