5 mal iterieren
Thomas Wölfer
12. März 2009
Angenommen, man hat eine List<int> und jedes der Elemente daraus soll in ein Set<int>, das ungefähr so aussieht:
private
class Set : Dictionary<int,int>{
public void Add( int v)
{
base.Add(v,v);
}
}
Dann gibts mehr Möglichkeiten als man meinen möchte...
1.) Sehr Klassisch
private static void Foo0( List<int> list, Set dictionary ){
for( int i=0; i<list.Count; i++)
{
int v = list[i];
dictionary.Add(v);
}
}
2.) Klassisch
private static void Foo1(List<int> list, Set dictionary){
foreach( int i in list)
{
dictionary.Add(i, i);
}
}
3.) Per Delegate
private static void Foo2(List<int> list, Set dictionary){
list.ForEach(delegate(int i) { dictionary.Add(i, i); });
}
4.) Als Lamda-Expression
private static void Foo3(List<int> list, Set dictionary){
list.ForEach( i => dictionary.Add(i,i));
}
5.) Als Method-Group
private static void Foo4(List<int> list, Set dictionary){
list.ForEach(dictionary.Add);
}