Wie wird die zurückgegebene linq-Variable verwendet?

7

Ich habe mich entschlossen, einen kurzen Blick in die LINQ-Seite der Dinge zu werfen, anstatt nur eine gerade foreach-Schleife zu benutzen, aber ich habe Schwierigkeiten, sie zum Laufen zu bringen, hauptsächlich aufgrund von Datatypen, glaube ich.

Also ich habe das soweit,

%Vor%

siteTypeList ist eine Liste von SiteTypes. Ich versuche ein bestimmtes zu finden (was ich mit der Variable "temp" denunziert habe.

)

Wie verwende ich diesen ausgewählten SiteType dann als SiteType? Wenn ich versuche, "selectedSiteType" an eine andere Funktion weiterzuleiten, so;

%Vor%

Hinweis: Ich habe versucht, einen Index zur Verfügung zu stellen, als wäre selectedSiteType eine Liste / Array, aber das hat auch nicht funktioniert, ich bekomme den folgenden Fehler:

%Vor%

Vermisse ich etwas? vielleicht eine Art Besetzung? Wie ich sagte, bin ich neu und kämpfe um meinen Kopf. Wahrscheinlichkeiten sind, dass ich das ganze Konzept falsch verstanden habe und bingbangbosh, dass ich einen Idioten von mir gemacht habe!

Prost im Voraus.

    
Shane.C 18.09.2012, 12:51
quelle

3 Antworten

17

Verwenden Sie zuerst / FirstOrDefault / Single / SingleOrDefault , um ein Element des jeweiligen Elements zu erhalten Tippe aus der Sammlung.

%Vor%     
Habib 18.09.2012, 12:53
quelle
7

Wenn Ihr Rückgabetyp ein einzelner ist:

%Vor%

Wenn eine Liste (möglicherweise mehr als ein Element):

%Vor%

Die SingleOrDefault / ToList fehlt in Ihrer Abfrage.

    
Chris Dixon 18.09.2012 12:53
quelle
4

Shane,

Ich werde die vorherigen Antworten nicht verbessern. Sie waren beide richtig. Ich werde versuchen, Ihnen ein wenig zu erklären, damit Sie es in der Zukunft ein bisschen besser verstehen.

Was passiert, wenn Sie einen Code schreiben wie:

%Vor%

Sie schreiben die Antwort nicht in var (selectedSiteType), sondern erstellen einen Ausdrucksbaum, der NUR dann ausgewertet wird, wenn Sie ihn tatsächlich benutzen (in einer foreach oder durch Aufruf einer der Methoden (wie. First (), .ToList (), SingleOrDefault () usw.).

Der Standardrückgabetyp einer from-Anweisung ist ein IEnumerable & lt; & gt ;, aber wenn Sie die .First () oder .SingleOrDefault () (usw.) aufrufen, tauchen Sie in diesen IEnumerable & lt; & gt; und einen bestimmten Gegenstand bekommen.

Ich hoffe, das hilft Ihnen, besser zu verstehen, was vor sich geht.

Lass mich wissen, ob ich etwas hinzufügen kann oder ob ich etwas falsch gemacht habe.

Prost,

Max

    
Max v. Steiger 18.09.2012 13:12
quelle

Tags und Links