Hi,
wie der Titel schon verrät, will das Thema Lambda Expressions nicht in mein Kopf. Ich habe die MSDN gelesen sowie einige Beispiele. Ich nutze sie zum Teil auch, meistens jedoch Copy und Paste und Frage mich jedes mal, wieso sie funktionieren. Ich suche dann wieder in Google nach Erklärungen und Beispielen um sie endlich zu verstehen. Hier ein paar Beispiele:
Allein die Beschreibung die Intelisense ausgeben verstehe ich nicht. Nur Google hat geholfen, wie die Argumente zu setzen sind. Ich weiß, dass in der Theorie links vom Operator der Input Parameter steht und rechts die Funktion. Satt r könnte man auch a schreiben usw. Aber warum könnte man nicht theoretisch auch als Argument folgendes einsetzen.
Der Compiler bringt dann:
Fehler 1 Die Typargumente der System.Linq.Enumerable.ToDictionary<TSource,TKey>(System.Collections.Generic.IEnumerable<TSource>, System.Func<TSource,TKey>, System.Collections.Generic.IEqualityComparer<TKey>)-Methode können nicht per Rückschluss aus der Syntax abgeleitet werden. Geben Sie die Typargumente explizit an. Z:\Visual Studio Projects\Test\Test\Configuration\cVariables.cs 152 19 Test
vom Input müsste das doch gleich sein.
Weiter geht es mit folgenden Beispiel auf der MSDN Seite:
http://msdn.microsoft.com/de-de/library/bb397687.aspx
Dieses Beispiel geht überhaupt nicht.
Fehler 4 Nur assignment-, call-, increment-, decrement- und "new object"-Ausdrücke können als Anweisung verwendet werden.
Kann jemand versuchen, es mir zu erklären ?
Danke für jeden Versuch.
Gruß Magic
wie der Titel schon verrät, will das Thema Lambda Expressions nicht in mein Kopf. Ich habe die MSDN gelesen sowie einige Beispiele. Ich nutze sie zum Teil auch, meistens jedoch Copy und Paste und Frage mich jedes mal, wieso sie funktionieren. Ich suche dann wieder in Google nach Erklärungen und Beispielen um sie endlich zu verstehen. Hier ein paar Beispiele:
Code:
private void dosort(cVariables variables)
{
Dictionary<string,cVariable> dic = variables.ToDictionary();
var items = from pair in dic
orderby pair.Value.SequenceNumber ascending
select pair;
//Das ist die Zeile. Eine Erweiterungsfunktion
dic = items.ToDictionary(r => r.Key, r => r.Value);
}
Allein die Beschreibung die Intelisense ausgeben verstehe ich nicht. Nur Google hat geholfen, wie die Argumente zu setzen sind. Ich weiß, dass in der Theorie links vom Operator der Input Parameter steht und rechts die Funktion. Satt r könnte man auch a schreiben usw. Aber warum könnte man nicht theoretisch auch als Argument folgendes einsetzen.
Code:
dic = items.ToDictionary(((KeyValuePair<string,cVariable>)items).Key,((KeyValuePair<string,cVariable>)items).Value);
Der Compiler bringt dann:
Fehler 1 Die Typargumente der System.Linq.Enumerable.ToDictionary<TSource,TKey>(System.Collections.Generic.IEnumerable<TSource>, System.Func<TSource,TKey>, System.Collections.Generic.IEqualityComparer<TKey>)-Methode können nicht per Rückschluss aus der Syntax abgeleitet werden. Geben Sie die Typargumente explizit an. Z:\Visual Studio Projects\Test\Test\Configuration\cVariables.cs 152 19 Test
vom Input müsste das doch gleich sein.
Weiter geht es mit folgenden Beispiel auf der MSDN Seite:
http://msdn.microsoft.com/de-de/library/bb397687.aspx
Code:
(int x, string s) => s.Length > x;
Dieses Beispiel geht überhaupt nicht.
Fehler 4 Nur assignment-, call-, increment-, decrement- und "new object"-Ausdrücke können als Anweisung verwendet werden.
Kann jemand versuchen, es mir zu erklären ?
Danke für jeden Versuch.
Gruß Magic