c#中连接2个或更多不同类型的列表时出错

本文关键字:同类型 列表 出错 连接 2个 | 更新日期: 2023-09-27 18:18:22

我有3个列表,数据来自数据库使用实体框架。我想将这3个列表连接到一个列表,并以JSON格式返回。我试过了。

 [HttpGet]
 public JsonResult GetAllData()
 {
     try
     {
         using (var context = new DbDemo())
         {
             var allData_Tweet = context.ObjTwitterDatas.Take(2).ToList();
             var allData_Youtube = context.ObjTubeDatas.Take(2).ToList();
             var allData_Blogs = context.Objblog.Take(2).ToList();
             var allData = allData_Tweet.Concat(allData_Youtube).Concat(allData_Blogs).ToList();
             return Json(allData, JsonRequestBehavior.AllowGet);
         }
     }
     catch(Exception)
     {
     }
     return Json("false", JsonRequestBehavior.AllowGet);
 }

返回

System.Collections.Generic。List'不包含'Concat'的定义和最佳扩展方法重载"System.Linq.Queryable.Concat(来。IQueryable, System.Collections.Generic.IEnumerable)'有一些无效的参数

实例参数:不能从"System.Collections.Generic"转换。列出"to"System.Linq。这个IQueryable '

c#中连接2个或更多不同类型的列表时出错

你可以把它框起来。

var result = allData_Tweet.Cast<object>().Concat(allData_Youtube.Cast<object>()).Concat(allData_Blogs.Cast<object>());

结果将是IEnumerable<object>.

然后打开它,你可以使用OfType<T>()

var myType1 = result.OfType<Type1>();
var myType2 = result.OfType<Type2>();
var myType3 = result.OfType<Type3>();

type1, type2,type3是objtwitterdata的类型,objtubedata &Objblog类型。