此映射是否正确?列表可以有多行
我很想知道列表中是否包含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()
}
答案 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"}
};
}
}
结果。