Можно ли упростить такой код
ObjectSpace space = winApplication.CreateObjectSpace();
IList<User> users=space.GetObjects<User>();
foreach (User currUser in users)
currUser.ConnectionStatus = ConnectionStatus.Disconnected;
Здравствуйте, Аноним, Вы писали:
А>Можно ли упростить такой код А>ObjectSpace space = winApplication.CreateObjectSpace(); А>IList<User> users=space.GetObjects<User>(); А>foreach (User currUser in users) А> currUser.ConnectionStatus = ConnectionStatus.Disconnected;
Здравствуйте, Аноним, Вы писали:
А>Можно ли упростить такой код
Можно.
winApplication.CreateObjectSpace().GetObjects<User>().ForAll(currUser => currUser.ConnectionStatus = ConnectionStatus.Disconnected); // looks best on a 16:1 screens;)
Но зачем?
Re[2]: Итерация по эл-м списка и выполнение действий
Здравствуйте, QrystaL, Вы писали:
QL>Здравствуйте, Аноним, Вы писали:
А>>Можно ли упростить такой код А>>ObjectSpace space = winApplication.CreateObjectSpace(); А>>IList<User> users=space.GetObjects<User>(); А>>foreach (User currUser in users) А>> currUser.ConnectionStatus = ConnectionStatus.Disconnected;
QL>Если использовать Rx:
QL>
S>winApplication.CreateObjectSpace().GetObjects<User>().ForAll(currUser => currUser.ConnectionStatus = ConnectionStatus.Disconnected); // looks best on a 16:1 screens;)
S>
Extension method ForAll откуда?
Re[3]: Итерация по эл-м списка и выполнение действий
От:
Аноним
Дата:
08.10.10 12:50
Оценка:
QL>Extension method ForAll откуда?
Угу, не работает код, потому что возвращает метод IList<User>
Re[3]: Итерация по эл-м списка и выполнение действий
Здравствуйте, Аноним, Вы писали:
А>Можно ли упростить такой код А>ObjectSpace space = winApplication.CreateObjectSpace(); А>IList<User> users=space.GetObjects<User>(); А>foreach (User currUser in users) А> currUser.ConnectionStatus = ConnectionStatus.Disconnected;
Можно только усложнить. Код и так простой, как тапки, зачем его еще упрощать?
Re[3]: Итерация по эл-м списка и выполнение действий
Здравствуйте, Аноним, Вы писали:
А>А чем плох представленный Вами код? Я думаю всё красиво получается?
Вам не рвёт шаблон от использования лямбд для изменения состояния?
Здравствуйте, Sinix, Вы писали:
А>>А чем плох представленный Вами код? Я думаю всё красиво получается? S>Вам не рвёт шаблон от использования лямбд для изменения состояния?
S>Подробнее — читаем Эрика "наше всё" Липперта (и подписываемся, конечно). S>http://blogs.msdn.com/b/ericlippert/archive/2009/05/18/foreach-vs-foreach.aspx
Здравствуйте, _FRED_, Вы писали:
_FR>Здравствуйте, Sinix, Вы писали:
А>>>А чем плох представленный Вами код? Я думаю всё красиво получается? S>>Вам не рвёт шаблон от использования лямбд для изменения состояния?
S>>Подробнее — читаем Эрика "наше всё" Липперта (и подписываемся, конечно). S>>http://blogs.msdn.com/b/ericlippert/archive/2009/05/18/foreach-vs-foreach.aspx
_FR>А List.iter<'T> Function "не рвёт шаблон от использования"?
А почему List.iter обязательно должен быть связан с изменяемым состоянием?
Оно отлично для других side-effect'ов подходит:
let xs = [ 1 .. 10 ] in List.iteri (printfn "[%d] %d") xs
Re[6]: Итерация по эл-м списка и выполнение действий
Здравствуйте, Пельмешко, Вы писали:
_FR>>А List.iter<'T> Function "не рвёт шаблон от использования"?
П>А почему List.iter обязательно должен быть связан с изменяемым состоянием? П>Оно отлично для других side-effect'ов подходит:
Мне кажется, что любой side-effect есть не что иное, как измение некоторого состояния.
Такое изменение может быть более или менее заметным для остальных частей программы, но есть всегда. В чём же измерять "заметность" (то есть допустимость) side-effect'а я не знаю, поэтому side-effect (изменяемое состояние) или есть или его нет.
Help will always be given at Hogwarts to those who ask for it.
Re[3]: Итерация по эл-м списка и выполнение действий
S>>winApplication.CreateObjectSpace().GetObjects<User>().ForAll(currUser => currUser.ConnectionStatus = ConnectionStatus.Disconnected); // looks best on a 16:1 screens;)
S>>