Metodi di estensione - ForEach
Scritto da
Marco Amendola il
lunedì 19 luglio 2010
•
Linguaggio:
• Livello: 100
Un metodo di estensione, divenuto ormai un classico, utile a
"distribuire" un'azione su tutti gli elementi di un
IEnumerable<>
C#
public static class EnumerableExtension
{
public static void ForEach<T>(this IEnumerable<T> self, Action<T> action)
{
if (action == null) return;
foreach (var item in self)
action.Invoke(item);
}
}
VB.NET
Imports System.Runtime.CompilerServices
Public Module Extensions
<Extension()> _
Public Sub ForEach(Of T)(ByVal ienum As IEnumerable(Of T), ByVal action As Action(Of T))
If action IsNot Nothing Then
For Each item In ienum
action.Invoke(item)
Next
End If
End Sub
End Module
Di seguito un esempio di utilizzo:
C#
var mySourceStringArray = new string[] { "The", "quick", "brown", "fox"};
var myDestinationStringList = new List<string>();
mySourceStringArray.ForEach(myDestination.Add);
myDestinationStringList.ForEach(x => Debug.Write(x + " "));
VB.NET
Private Sub Main()
Dim mySourceStringArray = New String() {"The", "quick", "brown", "fox"}
Dim myDestinationStringList = New List(Of String)()
mySourceStringArray.ForEach(AddressOf myDestinationStringList.Add)
myDestinationStringList.ForEach(AddressOf Write)
End Sub
Private Sub Write(ByVal x As String)
Debug.Write(x + " ")
End Sub
Tags: Linq,enumerator