5 mal iterieren


Thomas Wölfer
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);
}