C# 在c语言中将一个列表对象分配给另一个列表#
我有以下课程:C# 在c语言中将一个列表对象分配给另一个列表#,c#,list,object,C#,List,Object,我有以下课程: public class ProviderQualification { public List<ProviderDetail> ProviderDetails { get; set; } } public class ProviderDetail { public string ProviderName { get; set; } public string ServiceableOffers { get; set; } } public c
public class ProviderQualification
{
public List<ProviderDetail> ProviderDetails { get; set; }
}
public class ProviderDetail
{
public string ProviderName { get; set; }
public string ServiceableOffers { get; set; }
}
public class ProviderQualificationTimeViewModel
{
public List<ProviderQualificationDetail> ProviderQualificationDetails { get; set; }
}
public class ProviderQualificationDetail
{
public string ProviderName { get; set; }
public string TotalServiceableOffers { get; set; }
}
现在我想把这个列表复制到我的列表中。我该怎么做呢?您可以使用
可枚举。选择方法(IEnumerable, Func)
比如说
List<ProviderQualificationDetail> list =
providerQualification.ProviderDetails
.Select(x => new ProviderQualificationDetail(){
ProviderName = x.ProviderName,
TotalServiceableOffers = x.ServiceableOffers
}).ToList();
列表=
providerQualification.ProviderDetails
.选择(x=>new ProviderQualificationDetail(){
ProviderName=x.ProviderName,
TotalServicealOffers=x.ServicealOffers
}).ToList();
您可以使用
可枚举。选择方法(IEnumerable, Func)
比如说
List<ProviderQualificationDetail> list =
providerQualification.ProviderDetails
.Select(x => new ProviderQualificationDetail(){
ProviderName = x.ProviderName,
TotalServiceableOffers = x.ServiceableOffers
}).ToList();
列表=
providerQualification.ProviderDetails
.选择(x=>new ProviderQualificationDetail(){
ProviderName=x.ProviderName,
TotalServicealOffers=x.ServicealOffers
}).ToList();
使用Linq:
List<ProviderQualificationDetail> result =
providerQualification.ProviderDetails.Select(
q => new ProviderQualificationDetail()
{
ProviderName = q.ProviderName,
TotalServiceableOffers = q.ServiceableOffers
}).ToList();
列表结果=
providerQualification.ProviderDetails.Select(
q=>new ProviderQualificationDetail()
{
ProviderName=q.ProviderName,
TotalServicealOffers=q.ServicealOffers
}).ToList();
使用选择可以将ProviderDetails
中的每个元素投影到类型为ProviderQualificationDetail
的新元素中,然后使用Linq将其枚举到列表中
List<ProviderQualificationDetail> result =
providerQualification.ProviderDetails.Select(
q => new ProviderQualificationDetail()
{
ProviderName = q.ProviderName,
TotalServiceableOffers = q.ServiceableOffers
}).ToList();
列表结果=
providerQualification.ProviderDetails.Select(
q=>new ProviderQualificationDetail()
{
ProviderName=q.ProviderName,
TotalServicealOffers=q.ServicealOffers
}).ToList();
使用选择可以将ProviderDetails
中的每个元素投影到类型为ProviderQualificationDetail
的新元素中,然后将其枚举到列表中
您需要一个从ProviderDetail
到ProviderQualificationDetail
的映射。例如,如果您只想复制这些值,您可以像这样内联编写:
ProviderQualification providerQualification = reporting.GetProviderQualification();
var items = providerQualification.ProviderDetails
.Select(detail => new ProviderQualificationDetail
{
ProviderName = detail.ProviderName,
TotalServiceableOffers = detail.ServiceableOffers
})
.ToList();
var viewModel = new ProviderQualificationTimeViewModel
{
ProviderQualificationDetails = items
};
您需要一个从ProviderDetail
到ProviderQualificationDetail
的映射。例如,如果您只想复制这些值,您可以像这样内联编写:
ProviderQualification providerQualification = reporting.GetProviderQualification();
var items = providerQualification.ProviderDetails
.Select(detail => new ProviderQualificationDetail
{
ProviderName = detail.ProviderName,
TotalServiceableOffers = detail.ServiceableOffers
})
.ToList();
var viewModel = new ProviderQualificationTimeViewModel
{
ProviderQualificationDetails = items
};
在我看来,@zaria希望选择distinctProviderName
和totalservicableoffers
。如果她有ProviderQualification
类,为什么要绑定到ProviderQualificationDetail
List<ProviderQualificationDetail> list=providerQualification.ProviderDetails.GroupBy(x => x.ProviderName)
.Select(x=>new ProviderQualificationDetail{
ProviderName =x.Key,
TotalServiceableOffers=Sum(y=>y.ServiceableOffers)
}).ToList();
List List=providerQualification.ProviderDetails.GroupBy(x=>x.ProviderName)
.选择(x=>new ProviderQualificationDetail{
ProviderName=x.Key,
TotalServicealOffers=总和(y=>y.ServicealOffers)
}).ToList();
在我看来,@zaria希望选择distinctProviderName
和totalServiceableOffers
。如果她有ProviderQualification
类,为什么要绑定到ProviderQualificationDetail
List<ProviderQualificationDetail> list=providerQualification.ProviderDetails.GroupBy(x => x.ProviderName)
.Select(x=>new ProviderQualificationDetail{
ProviderName =x.Key,
TotalServiceableOffers=Sum(y=>y.ServiceableOffers)
}).ToList();
List List=providerQualification.ProviderDetails.GroupBy(x=>x.ProviderName)
.选择(x=>new ProviderQualificationDetail{
ProviderName=x.Key,
TotalServicealOffers=总和(y=>y.ServicealOffers)
}).ToList();
您的意思是,您只是通过创建ProviderQualificationDetail>
的新实例来复制属性,试图将列表
转换为列表
?您应该查看LINQ,尤其是Select
和ToList
方法。如何从servicableoffers
获取totalservicableoffers
?用分隔符连接?按提供者名称分组?还是相同的值具有不同的属性名?@JonSkeet-yes。我想将列表
分配给列表
。可能吗?@user3185569相同的值和不同的属性名只是分配它?不,绝对不是。创建一个新列表,并通过转换旧列表的每个元素来填充它?是的。您的意思是,您正试图通过创建ProviderQualificationDetail>
的新实例来将列表
转换为列表
?您应该查看LINQ,尤其是Select
和ToList
方法。如何从servicableoffers
获取totalservicableoffers
?用分隔符连接?按提供者名称分组?还是相同的值具有不同的属性名?@JonSkeet-yes。我想将列表
分配给列表
。可能吗?@user3185569相同的值和不同的属性名只是分配它?不,绝对不是。创建一个新列表,并通过转换旧列表的每个元素来填充它?对