2012-10-29 8 views
5

Ich versuche, mit C# vertraut zu machen und das folgende Programm ausprobiert - es gibt nur den Durchschnitt der geraden Zahlen im Array.Kann nicht von Method Group in Objekt konvertieren - C#

Code SnippetErrors

Wäre toll, wenn jemand das Problem hier hervorheben könnte.

+4

Es wäre viel einfacher, wenn Sie den Code als Text veröffentlichen würden. Ich würde das in Visual Studio einwerfen, aber ich werde den Code nicht erneut eingeben. Tipp: StackOverflow kann automatisch Code für Sie formatieren, wenn Sie einen Abschnitt als Code markieren. –

+0

sollten Sie auf die Klasse verweisen, die Sie versuchen, in 'msdn' zu verwenden. – Anirudha

Antwort

10

Sie benötigen select.Average() (mit dem Parens).

1

Sie rufen nicht Average. sollte select.Average() sein

3

The Missing Parenthesis () der Grund für Ihre error.It sollte Average() ist

ohne runde Klammern, ist es selbstverständlich sein, als ein Verfahren ist.Die durchschnittliche Methode mehrere Überlastungen haben könnte und es ist unklar, welche Die spezielle überladene Methode muss aufgerufen werden. Wenn Sie jedoch die Klammer angeben, wird die Absicht klarer und die Methode wird aufgerufen.

1

das Problem ist, dass Sie vergessen haben, die Klammern zu verwenden, da Average eine Methode ist (Erweiterung Typ). Eine andere Lösung ist Lambda-Ausdruck zu verwenden, so etwas wie dieses,

var numbers = new[] { 1, 2, 3, 4, 5 }; 
Console.WriteLine(numbers.Where(x => (x % 2) == 0).Average()); 

oder

var numbers = new[] { 1, 2, 3, 4, 5 }; 
var select = (from num in numbers where (num % 2) == 0 select num).Average(); 
Console.WriteLine(select); 
1

Es ist eine Erweiterung Method so sollte es so sein: Average()

mit (Parenthesis())

Verwandte Themen