Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在c语言中将一个列表对象分配给另一个列表#_C#_List_Object - Fatal编程技术网

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希望选择distinct
ProviderName
和total
servicableoffers
。如果她有
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希望选择distinct
ProviderName
和total
ServiceableOffers
。如果她有
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相同的值和不同的属性名只是分配它?不,绝对不是。创建一个新列表,并通过转换旧列表的每个元素来填充它?对