Re[8]: Полезняшка для dictionary
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 30.04.16 13:41
Оценка: +1
Здравствуйте, Jack128, Вы писали:

J>А вот чтоб переписать код ниже без метода Do — нужно заводить отдельный метод

J>
J>IEnumerable<MyObj> GetObjs()  {  .... } // получаем данные
J>void Process(IEnumerable<MyObj> objs) // обрабатываем их как то
J>{
J>   foreach(var obj in objs)
J>   {
J>      ...      
J>   }
J>}
J>AdditionalData GetAdditionalData(MyObj obj) { ... } 

J>Proccess(GetObjs().Do(obj => obj.AdditionalData = GetAdditionalData(obj)));
J>


AdditionalData GetAdditionalData(MyObj obj) { ... }

foreach (var obj in GetObjs())
{
    obj.AdditionalData = GetAdditionalData(obj)
    Process(obj);
}

Короче и понятнее. Или я чего то не понял?

Непременно надо цикл в метод запихнуть?
void Process(IEnumerable<MyObj> objs, Action<MyObj> preprocessor) // обрабатываем их как то
{
   foreach(var obj in objs)
   {
      preprocessor(obj);
      ...      
   }
}


Ну или если совсем уж намеренно упороться, то:
Proccess(GetObjs().Select(obj => {obj.AdditionalData = GetAdditionalData(obj); return obj;}));
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.