2016-10-11 2 views
-2

Я стараюсь преобразовать его в лямбда, но не смог добиться успеха. Есть ли способ конвертировать в linq или лямбда?Вложенное преобразование петли foreach в lambda или linq

foreach (var tempitem in mbsRateTempList) 
{ 
    foreach (var Saveditem in mbsSavedRecordList) 
    { 
     if (tempitem.MbsSecurityId == Saveditem.MbsSecurityId && tempitem.CouponRate == Saveditem.CouponRate 
       && tempitem.SettlementMonth.Month == Saveditem.SettlementMonth.Month && tempitem.Price == Saveditem.Price) 
     { 
      TobeDeletedIds.Add(Saveditem.Id); 
      MatchedIdsInTempList.Add(tempitem.TempId); 
      //mbsSavedRecordList[0].ObjectState=Repository.Pattern.Base.Infrastructure.ObjectState. 
     } 
     //else 
     //{ 

     //} 
    } 
} 
+0

Добро пожаловать на переполнение стека. Просьба привести примеры данных, которые вы используете, объекты кода, которые у вас есть, и полученную вами ошибку. Можно отредактировать ваш вопрос. –

ответ

0

Вы можете Join на анонимные типы, содержащие все необходимые свойства:

var objectsToAdd = from tempitem in mbsRateTempList 
        join saveditem mbsSavedRecordList 
        on new { tempitem.MbsSecurityId, tempitem.CouponRate, tempitem.SettlementMonth.Month, tempitem.Price } 
        equals new { saveditem.MbsSecurityId, saveditem.CouponRate, saveditem.SettlementMonth.Month, saveditem.Price } 
        select new { tempitem, saveditem }; 

foreach(var x in objectsToAdd) 
{ 
    TobeDeletedIds.Add(x.saveditem.Id); 
    MatchedIdsInTempList.Add(x.tempitem.TempId); 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^