kzen.dev
  • Вопросы
  • Метки
  • Пользователи
Оповещения
Вознаграждения
Регистрация
После регистрации, сможете получать уведомления об ответах и комментариях на Ваши вопросы.
Вход
Если у Вас уже есть аккаунт, войдите чтобы проверить новые уведомления.
Тут будут вознаграждения за добавленные вопросы, ответы и комментарий.
Дополнительно
Источник
Редактировать
 Robaticus
Robaticus
Вопрос

Метод List<T>.ForEach() исчез?

Недавно я начал осваивать Windows 8 metro и обнаружил, что один из моих старых приятелей, похоже, пропал.

Я чаще использую метод .ForEach(), чем традиционную конструкцию foreach(), и я довольно быстро понял, что этот метод недоступен. Например, этот код не будет компилироваться в приложении metro:

var list = new List<string>();

list.ForEach(System.Diagnostics.Debug.WriteLine);

Я искал, не могу ли я найти какое-либо обсуждение этого, но не смог. Я просто тупой, или этого действительно нет?

45 2012-04-24T13:57:12+00:00 3
 BoltClock
BoltClock
Редактировал вопрос 10-го мая 2017 в 7:13
Программирование
.net
c#
windows-8
windows-store-apps
Решение / Ответ
 BoltClock
BoltClock
24-го апреля 2012 в 1:58
2012-04-24T13:58:57+00:00
Дополнительно
Источник
Редактировать
#16021691

It's indeed gone:

List.ForEach был удален в приложениях в стиле Metro. Хотя этот метод кажется простым, он имеет ряд потенциальных проблем, когда список изменяется методом, переданным в ForEach. Вместо этого рекомендуется просто использовать цикл foreach.


Wes Haggard | .NET Framework Team (BCL) | http://blogs.msdn.com/b/bclteam/

Очень странно, однако, что он появляется в документации, где нигде не говорится, что этот метод не поддерживается в .NET для приложений Windows Store (ранее .NET для приложений в стиле Metro). Возможно, это просто недосмотр команды разработчиков документации.

 BoltClock
BoltClock
Редактировал ответ 16-го октября 2012 в 2:25
43
0
Joel Coehoorn
Joel Coehoorn
24-го апреля 2012 в 2:04
2012-04-24T14:04:16+00:00
Дополнительно
Источник
Редактировать
#16021712

Чтобы понять, почему он может больше не включаться, прочитайте это сообщение человека, который работает в команде C# в Microsoft: http://blogs.msdn.com/b/ericlippert/archive/2009/05/18/foreach-vs-foreach.aspx.

В основном, это философия. Функции "LINQ" сильно вдохновлены парадигмой функционального программирования, а расширение ForEach идет вразрез с этим... оно поощряет плохой функциональный стиль.

 BoltClock
BoltClock
Редактировал ответ 15-го июля 2012 в 3:57
18
0
 yamen
yamen
24-го апреля 2012 в 2:00
2012-04-24T14:00:56+00:00
Дополнительно
Источник
Редактировать
#16021704

Альтернативой является, конечно же, самостоятельное определение:

public static IEnumerable<T> ForEach<T>(this IEnumerable<T> enumeration, Action<T> action)
{
    foreach(T item in enumeration)
    {
        action(item);
        yield return item;
    }
}

Кредит: https://stackoverflow.com/questions/200574/linq-equivalent-of-foreach-for-ienumerablet

(Примечание: не дубликат)

 Community
Community
Редактировал ответ 23-го мая 2017 в 10:31
16
0
Похожие сообщества 20
DotNetRuChat
DotNetRuChat
6 630 пользователей
Чат русскоязычного .NET сообщества http://dotnet.ru/ Правила: https://t.me/DotNetRuChat/704399 Вам могут быть интересны: @dotnetchat, @cilchat, @fsharp_chat, @pro_net, @AvaloniaRU, @xamarin_russia, @DotNetRuJobs, @uwp_ru Флуд в @dotnettalks
Открыть telegram
Вакансии .NET
Вакансии .NET
3 530 пользователей
Правила: https://t.me/DotNetRuJobs/123 Канал с вакансиями - https://t.me/DotNetRuJobsFeed Вам могут быть интересны: @dotnetruchat, @cilchat, @fsharp_chat, @pro_net, @AvaloniaRU, @xamarin_russia Флуд в @dotnettalks
Открыть telegram
Microsoft Stack Jobs
Microsoft Stack Jobs
2 414 пользователей
Work & freelance only Microsoft Stack. Feed https://t.me/Microsoftstackjobsfeed Чат про F#: @Fsharp_chat Чат про C#: @CSharpChat Чат про Xamarin: @xamarin_russia Чат общения:@dotnettalks
Открыть telegram
С#
С#
2 330 пользователей
Стараемся не флудить. Пишем по делу. Правила: https://t.me/professorweb/430450 Для флуда @svoboda_obsh
Открыть telegram
pro.net
pro.net
1 820 пользователей
Обсуждение .NET и всего, что с ним связано. Правила: не флудить не по теме, уважать ваших коллег и никакой рекламы (объявления о вакансиях можно согласовать с @AlexFails). https://t.me/pro_net/34653 Флудилка: @dotnettalks
Открыть telegram
CODE BLOG / C#
CODE BLOG / C#
1 763 пользователей
Чат для .NET разработчиков и C# программистов. По всем вопросам: @shwanoff Youtube-канал: https://youtube.com/codeblog Основной канал: @codeblog Вконтакте: https://vk.com/codeblog Правила: https://t.me/codeblog_csharp/246972 Вакансии по тегу #work
Открыть telegram
Добавить вопрос
Категории
Все
Технологий
Культура / Отдых
Жизнь / Искусство
Наука
Профессии
Бизнес
Пользователи
Все
Новые
Популярные
1
Ilya Smirnov
Зарегистрирован 2 дня назад
2
Денис Васьков
Зарегистрирован 4 дня назад
3
Dima Patrushev
Зарегистрирован 6 дней назад
4
sirojidddin otaboyev
Зарегистрирован 2 недели назад
5
Елена Гайдамамакинат
Зарегистрирован 2 недели назад
ID
KO
RU
© kzen.dev 2023
Источник
stackoverflow.com
под лицензией cc by-sa 3.0 с атрибуцией