C#中的列表到列表转换

时间:2019-01-04 03:19:52

标签: c# .net list wcf c#-4.0

此映射是否正确?列表可以有多行

我很想知道列表中是否包含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()
}

2 个答案:

答案 0 :(得分:0)

我不知道这是从哪里来的ec2-XX-XXX-XXX-XX.ap-northeast-2.compute.amazonaws.com(dto.DataDetails)

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

您的代码:

dto.DataDetails

您的DataDetails = dto.DataDetails.Select(x => new Data { Name = x.Name, id = x.Id }) .ToList() 取决于此DataDetails 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;} 类的Address作为示例。 结果,您可以获得Data,但它返回的值为null。

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

Address

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

DataDetails

VarFromDataDetailsClass =  dto.DataDetails.ToList();

答案 1 :(得分:0)

似乎您想在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"}
        };

    }
}

结果。

enter image description here