Quote Originariamente inviata da Veronica80 Visualizza il messaggio
Scusate ragazzi cerco di spiegarmi meglio.

Io ho una classe creata da me: cls_Tilesets che contiene 3 proprietà pubbliche (Id, Nome, Lista) e creo una nuova list(of T) di quel tipo.

codice:
dim miaLista as new list(of cls_Tilesets)
La lista è correttamente popolata con altre funzioni.

L'errore è che l'intellisense non mi prende il codice LINQ Lambda quando provo a filtrare la lista.

Io vorrei fare una cosa del genere:

codice:
dim mioTileset as cls_Tilesets = miaLista.where(function(t) t.id=30).single
ma non me lo fa fare come se miaLista non fosse un IEnumerable!
Ok, allora dovrebbe essere semplice, a livello di compilazione potrebbe anche passare quello che hai scritto, ma il problema principale è che è inutile scrivere un where seguito da un single per ricavare un singolo elemento, ti porterebbe con buona probabilità ad ottenere un errore che a volte può sembrare random ed essere confuso con altro. Infatti il tuo codice in sostanza prima filtra un gruppo di risultati che idealmente hanno diversi candidati (Where) non necessariamente senza doppioni, successivamente usare single senza ulteriori criteri potrebbe mandare in errore il tutto a causa del fatto che ci sono due o piu candidati, perché single accetta un solo candidato possibile (va in errore anche se non ci sono elementi candidati). Inoltre fai due passaggi e non uno...
codice:
miaLista.Single(function(s)d.id=3)
questo fa lo stesso che facevi prima ma con un passaggio (illogico) in meno.
Inoltre come suggerito in precedenza potresti usare FirstOrDefault() o LastOrDefault() ecc. per evitare errori in caso di candidati multipli.

prova ad usare First al posto di Single per vedere se va in errore comunque.