Ciao a tutti,
Sono nuovo del forum, sto facendo il mio primo programma che utilizza il LINQ, il mio problema e' questo: devo ricavare il primo valore minore a quello di riferimento tra quelli contenuti in una lista.
Ho cominciato a scriver il codice, ma m sono bloccato a causa di 2 errori che non riesco a risolvere.
il mio codice e' questo:
private void button1_Click(object sender, EventArgs e)
{
XDocument xmlDoc = XDocument.Load(@"c:\a\casse.xml");
var casse = (from serbatoio in xmlDoc.Descendants("serbatoio")
where serbatoio.Attribute("id").Value == ("serbatoio" + NumSerbatoio.Text)
select serbatoio).FirstOrDefault().Descendants("valore")
.Select(v => new { Altezza = int.Parse(v.Attribute("Altezza").Value), Litri = int.Parse(v.Attribute("litri").Value) }).ToList();
var prova = (from altezze in casse
orderby altezze.Altezza descending
select altezze).ToList();
int altezza1 = prova.FirstOrDefault<int>(x => x > int.Parse(Altezza.Text));
// textBox1.Text = casse.ToString();
}
visual studio mi restituisce questi errori nell ultima riga:
Errore 1 'System.Collections.Generic.List<AnonymousType#1>' non contiene una definizione per 'FirstOrDefault' e l'overload migliore del metodo di estensione 'System.Linq.ParallelEnumerable.FirstOrDefault<TSo urce>(System.Linq.ParallelQuery<TSource>, System.Func<TSource,bool>)' presenta alcuni argomenti non validi
Errore 2 Argomento dell'istanza: impossibile convertire da 'System.Collections.Generic.List<AnonymousType#1>' a 'System.Linq.ParallelQuery<int>'
potere aiutarmi a risolvere il mio problema per favore?
grazie