Linq Abfrage an eine ListBox

24/01/2010 - 18:39 von ludwig Koenigbauer | Report spam
Hallo,
ich möchte die nachfolgende Methode -in VB Net funktionierende- nach C#
umschreiben:

Private Function FindItem(ByVal Search As String, ByVal List As ListBox) As
Integer
Dim Found As String = _
(From Element In List.Items Where
Element.ToString().Contains(Search) _
Select Element).FirstOrDefault.ToString()
End Function

Die C#-Methode wirft aber in List.Items einen Fehler mit der Begründung:
"Es konnte keine Implementierung des Abfragemusters für den
Quelltyp "System.Windows.Forms.ListBox.ObjectCollection" gefunden werden.
"Where" wurde nicht gefunden. Geben Sie den Typ der Bereichsvariablen "el"
explizit an."
Die Methode habe ich so geschrieben:
private int FindItem(string Search, ListBox List)
{
string Found = (from el in List.Items where
el.ToString().Contains(Search)
select el). FirstOrDefault.ToString();
}
Ich hatte es schon mit IEnummerable deklariert;
Googeln hat mich auch nicht weiter gebracht,deswegen wende ich mich nach
hier.
Was muss man in C# anders deklarieren und ggfls. wie?
Vielleicht kann mir hier weitergeholfen werden.

Viele
Grüße
Ludwig
 

Lesen sie die antworten

#1 Martin Honnen
24/01/2010 - 19:13 | Warnen spam
ludwig Koenigbauer wrote:

Die C#-Methode wirft aber in List.Items einen Fehler mit der Begründung:
"Es konnte keine Implementierung des Abfragemusters für den
Quelltyp "System.Windows.Forms.ListBox.ObjectCollection" gefunden werden.
"Where" wurde nicht gefunden. Geben Sie den Typ der Bereichsvariablen
"el" explizit an."
Die Methode habe ich so geschrieben:
private int FindItem(string Search, ListBox List)
{
string Found = (from el in List.Items where
el.ToString().Contains(Search)
select el). FirstOrDefault.ToString();
}



Klappt das mit
from object el in List.Items
? Ansonsten gib statt "object" den Typ an, den du in die
Items-Kollektion packst.



Martin Honnen MVP XML
http://msmvps.com/blogs/martin_honnen/

Ähnliche fragen