如何在MVC控制器中将一个类值列表初始化为另一个类列表对象?

时间:2019-03-31 10:12:12

标签: c# asp.net-mvc

我想获取已经在DAL中查询过的First类的列表,所以我想将其放在业务逻辑方面的Second类对象的另一个列表中。

>

我尝试如下

List<Second> HitoryList = new List<Second>();

//getting list of data from DAL
var Hitory = _objHitoryDB.GetHitoryId(Id);

HitoryList = ((List<First>)Hitory.Select(
                                        x => new Second()
                                        {
                                            imID = x.imID,
                                            Title = x.Title,
                                            Desc = x.Desc,
                                            CreatedOn= x.CreatedOn
                                        }
                                    ).ToList();

实际上,我需要返回到ActionResult,以返回更多“第二”类数据列表,因此我创建了“第二”类型List数组。

IEnumerable<Second>[] Details = new IEnumerable<Second>[4];

在两个0和1的列表数组中初始化相同的类型,即“第二类类型列表”

   Details[0] = PersonalInfo;
   Details[1] = OffcInfo;

但是在列表的第3和第4数组中需要初始化不同的类类型。 那么,如何在MVC控制器中将一个类值列表初始化为另一个类列表对象?

1 个答案:

答案 0 :(得分:0)

我说得对,您的问题是:如何将List<First>映射到List<Second>?如果没有,请发表评论,我会修复答案

您在第一个代码段中处境良好。这是固定的和带注释的版本:

//getting list of data from DAL, result is IEnumerable<First> or similar (List etc)
var Hitory = _objHitoryDB.GetHitoryId(Id);

//Declare List<Second> variable where we will store result of mapped data
List<Second> HitoryList = null;

//Map First-objects to Second objects with Linq Select: 
HitoryList = ((List<Second>)Hitory.Select(
    x => new Second()
    {
      imID = x.imID,
      Title = x.Title,
      Desc = x.Desc,
      CreatedOn= x.CreatedOn
    }).ToList();