List<T>.ForEach(Action<T>) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Выполняет указанное действие с каждым элементом списка List<T>.
public:
void ForEach(Action<T> ^ action);
public void ForEach (Action<T> action);
member this.ForEach : Action<'T> -> unit
Public Sub ForEach (action As Action(Of T))
Параметры
Исключения
action
имеет значение null
.
Элемент в коллекции изменен.
Примеры
В следующем примере показано использование делегата Action<T> для печати содержимого List<T> объекта . В этом примере Print
метод используется для отображения содержимого списка в консоли.
Примечание
Помимо отображения содержимого с помощью Print
метода , пример C# демонстрирует использование анонимных методов для отображения результатов в консоли.
List<string> names = new List<string>();
names.Add("Bruce");
names.Add("Alfred");
names.Add("Tim");
names.Add("Richard");
// Display the contents of the list using the Print method.
names.ForEach(Print);
// The following demonstrates the anonymous method feature of C#
// to display the contents of the list to the console.
names.ForEach(delegate(string name)
{
Console.WriteLine(name);
});
void Print(string s)
{
Console.WriteLine(s);
}
/* This code will produce output similar to the following:
* Bruce
* Alfred
* Tim
* Richard
* Bruce
* Alfred
* Tim
* Richard
*/
Imports System.Collections.Generic
Class Program
Shared Sub Main()
Dim names As New List(Of String)
names.Add("Bruce")
names.Add("Alfred")
names.Add("Tim")
names.Add("Richard")
' Display the contents of the list using the Print method.
names.ForEach(AddressOf Print)
End Sub
Shared Sub Print(ByVal s As String)
Console.WriteLine(s)
End Sub
End Class
' This code will produce output similar to the following:
' Bruce
' Alfred
' Tim
' Richard
Комментарии
— Action<T> это делегат метода, который выполняет действие над переданным ему объектом. Элементы текущего List<T> объекта передаются делегату по отдельности Action<T> .
Этот метод является операцией O(n), где n — .Count
Изменение базовой коллекции в теле делегата Action<T> не поддерживается и вызывает неопределенное поведение.