Oppure

Loading
Questo topic e' stato chiuso dal moderatore.
27/09/11 13:14
Renny
Ciao a tutti. Piccolo problemino con Linq. Ho letto un po' la guida di Totem, ma.. non c'ho capito molto. Comunque, ho un dictionary di String e Boolean. Dopo aver caricato il mio dictionary con i vari item ho la necessità di sapere quanti Item hanno Value = true. La cosa si può fare facilmente con un bel for Each e un contattore, ma così ho la scusa per usare Linq.. (o almeno provarci).
In rete ho trovato questo codice, che ho un po riadattato a tentativi:
 Dim query = From MyDictionary In MyDictionary.Values
            Group By c Into grouping = Group _
            Order By c Select New With {.condizione = True, .Count = grouping.Count()}

Qualcuno mi può spiegare come funziona? Se poi volessi convertire il valore di query in byte, che tanto so che è un numero piccolo? Grazie8-|
aaa
27/09/11 17:11
HeDo
secondo me ti stai complicando la vita, credo basti un

Dim count As Integer = MyDictionary.Count(Function(item) item.Value)
aaa
27/09/11 18:21
Renny
Ciao, grazie.. Avevo anche io l'impressione che quel pezzo di codice facesse qualcosa in più di una semplice verifica e conteggio.. Ma se ci mettevo le mani poi mi dava errore.. Comunque, per completare, metto il codice "corretto":
Dim cont As Byte = CByte(MyDictiornary.LongCount(Function(item) item.Value = True))

Bisogna usare l'extention LongCount perchè il "count" normale dei dictionary non ha overloads.
Grazie ancora!:k:
aaa