繁体   English   中英

C#中的列表到列表转换

[英]List to list conversion in C#

这个映射正确吗? 列表可以有多行

我很想知道列表中是否包含3行,并且所有3行都将被映射? 还是我们需要循环?

public List<Data> DataDetails { get; set; }

public static DataDetails ToDataConvert ( this Datadto data)
{

 DataDetails = dto.DataDetails.Select(x => new Data()
                        {
                            Name = x.Name,
                            id = x.Id
                        })
                        .ToList()
}

我不知道这是从哪里来的dto (dto.DataDetails)

dto.DataDetails取决于您创建了多少行。

您的代码:

DataDetails = dto.DataDetails.Select(x => new Data
                        {
                            Name = x.Name,
                            id = x.Id
                        })
                        .ToList()

您的DataDetails依赖于此public List<Data> DataDetails { get; set; } public List<Data> DataDetails { get; set; } public List<Data> DataDetails { get; set; }Data列表

作为DataDetails的结果,取决于这部分代码:

     {
         Name = x.Name,
          id = x.Id
     })

如果您的Data类如下所示

public String Name {get;set;}
public int id{get;set;}
public String Address {get;set;}

这意味着您没有包括Data类的Address作为示例。 结果,您可以获得一个Address但它返回空值。

现在,如果您的linq看起来像这样:

dto.DataDetails.ToList()

这将包括您想要获取的所有记录,但是您需要使用此类DataDetails作为变量,例如:

VarFromDataDetailsClass =  dto.DataDetails.ToList();

要么

var Result =  dto.DataDetails.ToList();

似乎您想在c#中使用扩展方法并转换列表。 如果是这样,我建议您可以将转换后的列表用作方法的返回值。 我的扩展方法转换类型为List的对象

namespace ServiceInterface.Models
{
public static  class ExtensionClass
{

    public static List<Customer> ConvertCustomer(this List<Customer> customers)
    {
        return customers.Select(
            c =>

            new Customer
            {
                FirstName = c.FirstName + " " + c.LastName,
                LastName = "",
                Gender = c.Gender
            }).ToList();
    }
}
}

然后,您可以使用扩展方法编写如下。 请不要忘记导入扩展方法的名称空间。

using ServiceInterface.Models;
namespace consoleClient.Message_exe
{
    class StringTest
    {
    static void Main(string[] args)
    {
             List<Customer> customers = new List<Customer>()
        {
            new Customer{LastName="a", FirstName="b"},
            new Customer{LastName="c", FirstName="d"}
        };

    }
}

结果。

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM