2016-11-11 80 views
0

我有以下類:賦值列表中使用lambda表達式

public class ProviderQualificationTimeViewModel 
{ 
    public string SessionId { get; set; } 
    public List<ProviderQualificationDetail> ProviderQualificationDetails { get; set; } 
} 

public class ProviderQualificationDetail 
{ 
    public string ProviderName { get; set; } 
    public string ProviderQualificationTime { get; set; } 
    public string TotalServiceableOffers { get; set; } 
} 

基本上,我想如果條件爲真,否則我想更新ProviderQualificationDetail.ProviderQualificationTime其中ProviderQualificationDetail.ProviderName ==的providerName 是創建一個新的對象它可能使用lambda表達式?

List<ProviderQualificationDetail> providerQualificationDetail = new List<ProviderQualificationDetail>(); 

foreach (ProviderModel providers in allProviders) 
{ 
    if(!providerQualificationDetail.Any(p=>p.ProviderName.Contains(providerName))) 
    { 
     ProviderQualificationDetail ProviderQualificationDetail = new ProviderQualificationDetail(); 
     ProviderQualificationDetail.ProviderName = providerName; 
     ProviderQualificationDetail.ProviderQualificationTime = Math.Round(processingTime).ToString(); 
     ProviderQualificationDetail.TotalServiceableOffers = "Not serviceable"; 
     providerQualificationDetail.Add(ProviderQualificationDetail); 
    } 
    else 
    { 
     //Lambda expression here 
    } 
} 
+0

是那個ProviderModel.providerName? – James

回答

0

這樣在其他部分:

foreach (var item in providerQualificationDetail.Where(x => x.ProviderName== providerName)) 
{ 
item.ProviderQualificationTime = Math.Round(processingTime).ToString(); 
} 

或者

providerQualificationDetail.Where(x => x.ProviderName == ProviderName).Select(c =>      
{ 
c.ProviderQualificationTime = "new time "; 
return providerQualificationDetail; 
}).ToList(); 

或者

providerQualificationDetail.ForEach(x => 
{ 
if(x.ProviderName == ProviderName) 
x.ProviderQualificationTime = "new time"; 
}); 
0

試試這個....

List<ProviderQualificationDetail> providerQualificationDetail = new List<ProviderQualificationDetail>(); 

foreach (ProviderModel providers in allProviders) 
{ 
    if(!providerQualificationDetail.Any(p=>p.ProviderName.Contains(providerName))) 
    { 
     ProviderQualificationDetail ProviderQualificationDetail = new ProviderQualificationDetail(); 
     ProviderQualificationDetail.ProviderName = providerName; 
     ProviderQualificationDetail.ProviderQualificationTime = Math.Round(processingTime).ToString(); 
     ProviderQualificationDetail.TotalServiceableOffers = "Not serviceable"; 
     providerQualificationDetail.Add(ProviderQualificationDetail); 
    } 
    else 
    { 
var qualificationDetail = providerQualificationDetail.SingleOrDefault(p => p.ProviderName.Equals(providerName)); 
//Assing your values here 
//example; 
qualificationDetail.ProviderName = NewProviderName.ToString(); 
providerQualificationDetail.SaveChanges(); 
    } 
}