Итерация по эл-м списка и выполнение действий
От: Аноним  
Дата: 08.10.10 12:22
Оценка:
Можно ли упростить такой код
ObjectSpace space = winApplication.CreateObjectSpace();
IList<User> users=space.GetObjects<User>();
foreach (User currUser in users)
currUser.ConnectionStatus = ConnectionStatus.Disconnected;
Re: Итерация по эл-м списка и выполнение действий
От: QrystaL Украина  
Дата: 08.10.10 12:28
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Можно ли упростить такой код

А>ObjectSpace space = winApplication.CreateObjectSpace();
А>IList<User> users=space.GetObjects<User>();
А>foreach (User currUser in users)
А> currUser.ConnectionStatus = ConnectionStatus.Disconnected;

Если использовать Rx:

winApplication
    .CreateObjectSpace()
    .GetObjects<User>()
    .Do(u => u.ConnectionStatus = ConnectionStatus.Disconnected);
Re: Итерация по эл-м списка и выполнение действий
От: Sinix  
Дата: 08.10.10 12:34
Оценка: +2 :))
Здравствуйте, Аноним, Вы писали:

А>Можно ли упростить такой код


Можно.
winApplication.CreateObjectSpace().GetObjects<User>().ForAll(currUser => currUser.ConnectionStatus = ConnectionStatus.Disconnected); // looks best on a 16:1 screens;)

Но зачем?
Re[2]: Итерация по эл-м списка и выполнение действий
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 08.10.10 12:35
Оценка:
Здравствуйте, QrystaL, Вы писали:

QL>Здравствуйте, Аноним, Вы писали:


А>>Можно ли упростить такой код

А>>ObjectSpace space = winApplication.CreateObjectSpace();
А>>IList<User> users=space.GetObjects<User>();
А>>foreach (User currUser in users)
А>> currUser.ConnectionStatus = ConnectionStatus.Disconnected;

QL>Если использовать Rx:


QL>
QL>winApplication
QL>    .CreateObjectSpace()
QL>    .GetObjects<User>()
QL>    .Do(u => u.ConnectionStatus = ConnectionStatus.Disconnected);
QL>



Ох не стоит так делать...

Надо Run вместо Do
Re[2]: Итерация по эл-м списка и выполнение действий
От: Аноним  
Дата: 08.10.10 12:41
Оценка:
S>Можно
S>
S>winApplication.CreateObjectSpace().GetObjects<User>().ForAll(currUser => currUser.ConnectionStatus = ConnectionStatus.Disconnected); S>

S>Но зачем?

А чем плох представленный Вами код? Я думаю всё красиво получается?
Re[2]: Итерация по эл-м списка и выполнение действий
От: QrystaL Украина  
Дата: 08.10.10 12:49
Оценка:
S>
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]: Итерация по эл-м списка и выполнение действий
От: Sinix  
Дата: 08.10.10 13:02
Оценка:
Здравствуйте, QrystaL, Вы писали:

QL>Extension method ForAll откуда?

Из головы вестимо
Re: Итерация по эл-м списка и выполнение действий
От: Lloyd Россия  
Дата: 08.10.10 13:03
Оценка: +2
Здравствуйте, Аноним, Вы писали:

А>Можно ли упростить такой код

А>ObjectSpace space = winApplication.CreateObjectSpace();
А>IList<User> users=space.GetObjects<User>();
А>foreach (User currUser in users)
А> currUser.ConnectionStatus = ConnectionStatus.Disconnected;

Можно только усложнить. Код и так простой, как тапки, зачем его еще упрощать?
Re[3]: Итерация по эл-м списка и выполнение действий
От: QrystaL Украина  
Дата: 08.10.10 13:04
Оценка:
G>Надо Run вместо Do

Да, ступил )

S>Из головы вестимо


)))
Re[3]: Итерация по эл-м списка и выполнение действий
От: Sinix  
Дата: 08.10.10 13:09
Оценка: 1 (1)
Здравствуйте, Аноним, Вы писали:

А>А чем плох представленный Вами код? Я думаю всё красиво получается?

Вам не рвёт шаблон от использования лямбд для изменения состояния?

Подробнее — читаем Эрика "наше всё" Липперта (и подписываемся, конечно).
http://blogs.msdn.com/b/ericlippert/archive/2009/05/18/foreach-vs-foreach.aspx
Re[3]: Итерация по эл-м списка и выполнение действий
От: Sinix  
Дата: 08.10.10 13:12
Оценка:
Здравствуйте, Аноним, Вы писали:

А>А чем плох представленный Вами код? Я думаю всё красиво получается?

UPD: Уже обсуждалось
Автор: Ziaw
Дата: 24.06.09
.
Re[4]: Итерация по эл-м списка и выполнение действий
От: _FRED_ Черногория
Дата: 09.10.10 08:51
Оценка: +1 :)
Здравствуйте, Sinix, Вы писали:

А>>А чем плох представленный Вами код? Я думаю всё красиво получается?

S>Вам не рвёт шаблон от использования лямбд для изменения состояния?

S>Подробнее — читаем Эрика "наше всё" Липперта (и подписываемся, конечно).

S>http://blogs.msdn.com/b/ericlippert/archive/2009/05/18/foreach-vs-foreach.aspx

А List.iter&lt;'T&gt; Function "не рвёт шаблон от использования"?
Help will always be given at Hogwarts to those who ask for it.
Re[5]: Итерация по эл-м списка и выполнение действий
От: Пельмешко Россия blog
Дата: 09.10.10 09:58
Оценка:
Здравствуйте, _FRED_, Вы писали:

_FR>Здравствуйте, Sinix, Вы писали:


А>>>А чем плох представленный Вами код? Я думаю всё красиво получается?

S>>Вам не рвёт шаблон от использования лямбд для изменения состояния?

S>>Подробнее — читаем Эрика "наше всё" Липперта (и подписываемся, конечно).

S>>http://blogs.msdn.com/b/ericlippert/archive/2009/05/18/foreach-vs-foreach.aspx

_FR>А List.iter&lt;'T&gt; Function "не рвёт шаблон от использования"?


А почему List.iter обязательно должен быть связан с изменяемым состоянием?
Оно отлично для других side-effect'ов подходит:
let xs = [ 1 .. 10 ] in List.iteri (printfn "[%d] %d") xs
Re[6]: Итерация по эл-м списка и выполнение действий
От: _FRED_ Черногория
Дата: 09.10.10 10:26
Оценка:
Здравствуйте, Пельмешко, Вы писали:

_FR>>А List.iter&lt;'T&gt; Function "не рвёт шаблон от использования"?


П>А почему List.iter обязательно должен быть связан с изменяемым состоянием?

П>Оно отлично для других side-effect'ов подходит:
П>let xs = [ 1 .. 10 ] in List.iteri (printfn "[%d] %d") xs


Мне кажется, что любой side-effect есть не что иное, как измение некоторого состояния.

Такое изменение может быть более или менее заметным для остальных частей программы, но есть всегда. В чём же измерять "заметность" (то есть допустимость) side-effect'а я не знаю, поэтому side-effect (изменяемое состояние) или есть или его нет.
Help will always be given at Hogwarts to those who ask for it.
Re[3]: Итерация по эл-м списка и выполнение действий
От: User239 Россия  
Дата: 09.10.10 17:05
Оценка:
Здравствуйте, QrystaL, Вы писали:

S>>
S>>winApplication.CreateObjectSpace().GetObjects<User>().ForAll(currUser => currUser.ConnectionStatus = ConnectionStatus.Disconnected); // looks best on a 16:1 screens;)
S>>


QL>Extension method ForAll откуда?


Видимо имелся в виду ForEach.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.