вызовите функцию для каждого значения в универсальном c# наборе [дубликат]

Кавычка предотвращает выполнение или оценку формы, поворачивая его вместо этого в данные. В целом можно выполнить данные к тому времени eval'ing это.

кавычка создает структуры данных списка, например, следующее эквивалентны:

(quote a)
'a

Это может также использоваться для создания списков (или деревья):

(quote (1 2 3))
'(1 2 3)

Вы являетесь, вероятно, лучшими от получения книги introductary по шепелявости, такой как Практический язык Common LISP (который доступен для чтения онлайн).

51
задан Winston Smith 11 December 2009 в 00:47
поделиться

6 ответов

LINQ здесь не помогает, но вы можете использовать List .ForEach :

List .ForEach Method

Выполняет указанный действие над каждым элементом списка.

Пример:

myList.ForEach(p => myFunc(p));

Значение, переданное лямбда-выражению, является элементом списка, поэтому в этом примере p является длинным if myList - это список .

81
ответ дан 7 November 2019 в 09:50
поделиться

Как отмечали другие авторы, вы можете использовать List .ForEach .

Однако вы можете легко написать метод расширения, который позволит вам использовать ForEach на любом IEnumerable

public static void ForEach<T>(this IEnumerable<T> source, Action<T> action)
{
    foreach(T item in source)
        action(item);
}

Это означает, что теперь вы можете делать:

myList.Where( ... ).ForEach( ... );
22
ответ дан 7 November 2019 в 09:50
поделиться

Вы можете использовать метод List.ForEach как таковой:

myList.ForEach(p => myFunc(p));
8
ответ дан 7 November 2019 в 09:50
поделиться

Нет - если вы хотите вызвать функцию для каждого элемента в списке, вы должны вызвать функцию для каждого элемента в списке.

Однако вы можете использовать метод IList .ForEach () в качестве синтаксического сахара, чтобы сделать «бизнес-конец» кода более читаемый, например:

items.ForEach(item => DoSomething(item));
5
ответ дан 7 November 2019 в 09:50
поделиться

Вы можете использовать метод ForEach:

MSDN:

http://msdn.microsoft.com/en-us/library/bwabdf9z.aspx

4
ответ дан 7 November 2019 в 09:50
поделиться

Если вы не хотите использовать метод ForEach List , а используйте IEnumerable (как это часто бывает, когда «LINQ: ing»), я предлагаю MoreLINQ , написанный Джоном Скитом и др.

MoreLINQ предоставит вам ForEach, а также Pipe (и множество других методы), который выполняет действие для каждого элемента, но возвращает тот же IEnumerable (по сравнению с void).

2
ответ дан 7 November 2019 в 09:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: