Posts
256
Comments
330
Trackbacks
7
LINQ
.NET e soddisfazioni

Dopo tanti sacrifici, ogni tanto arriva qualche soddisfazione: ieri è mi giunta  una copia del libro “Approaches in Material Sampling”, in cui, oltre ad essere uno dei coautori di un capitolo (Grazie Gianni), è presente un CD allegato con alcuni software che permettono di eseguire analisi statistiche sui dati di campionamento. Uno di questi è SISSI 2.0: “a resampling-based software for sample size determination”. Il tool è stato scritto in .NET 3.5 facendo largo uso di LINQ To Objects e programmazione multi-threading. Spero quanto prima di riuscire ad eseguire il porting verso .NET 4.0 per sfruttare MEF ed aggiungere un...

posted @ domenica 29 agosto 2010 18.28 | Feedback (8)
Estrazione di indici da una lista con LINQ

Se abbiamo una lista, ad esempio contenenti dei nomi, e vogliamo estrarre gli indici delle item che soddisfano una certa condizione di filtro, possiamo scrivere: 1: Dim Nomi As New List(Of String) 2:   3: Nomi.Add("Antonio") 4: Nomi.Add("Franco") 5: Nomi.Add("Giovanni") 6: Nomi.Add("Antonio") 7:   8: Dim sStringaRiferimento As String = "Antonio" 9:   10: Dim q As IEnumerable(Of Integer) = Nomi.Select( _ 11: Function(nome, indice) New With {nome,...

posted @ venerdì 27 novembre 2009 14.09 | Feedback (0)
OrderBy (e OrderByDescending) e comparatori personalizzati

Supponiamo di lavorare con due classi del tipo seguente: e di voler utilizzare Linq To Objects per eseguire delle operazioni sul nostro insieme di dati, composto da un array di oggetti Documento: 1 Documento[] documenti = new Documento[]{ 2 new Documento ("10",new Cliente {Nome="Pietro",Cognome ="Libro",CodiceFiscale="ABA"}), 3 new Documento ("2",new Cliente {Nome="Pietro",Cognome ="Bianchi",CodiceFiscale="ABB"}), 4 new Documento ("1",new Cliente {Nome="Giuseppe",Cognome ="Rossi",CodiceFiscale="ABC"}), 5 new Documento ("1",new Cliente {Nome="Gabriele",Cognome ="Bianchi",CodiceFiscale="ABD"})}; Supponiamo di voler utilizzare una query expression per ottenere una lista (nello specifico un  oggetto che implementi l'interfaccia...

posted @ venerdì 2 gennaio 2009 19.58 | Feedback (0)
Passato e presente

Mi trovavo ad analizzare un vecchio codice VB6 per un amico, ed ho trovato una possibile implementazione di un algorimo per la risoluzione del seguente problema: Dato un array di double, trovare il valore minimo, escludendo dei valori, ad esempio, (0). Soluzione del passato trovata (VB6) Function TrovaMinimo(dati() As Double, Optional Except As Double) Dim i As Integer Dim Minimo As Double Dim numerodati As Integer numerodati = UBound(dati) ...

posted @ martedì 21 ottobre 2008 18.10 | Feedback (2)
WPF + LINQ + CollectionViewSource = Rss Reader

Questo post è nato con uno scopo diverso da quello dell'implementazione di un Rss Reader, dato che, è sufficiente cercare su internet per trovarne di belli e pronti, ma per enfatizzare alcune proprietà molto interessanti dei controlli WPF, come  la possibilità di eseguire il raggruppamento dei dati nei controlli ListBox o ListView. Piccola parentesi: per chi volesse conoscere in dettaglio le specifiche RSS 2.0 le può trovare qui. Iniziamo sviluppando un set di classi come riassunto dal seguente Class Diagram: Nel resto dell'esempio saranno prese in considerazione solo istanze di tipo Rss e RssItem. Generalmente, senza...

posted @ mercoledì 27 agosto 2008 13.30 | Feedback (9)
Linq: ThenBy e ThenByDescending

Se abbiamo la necessità di ordinare una query Linq per più campi possiamo utilizzare gli operatori ThenBy e ThenByDescending. Considerando le classi del post precedente, se volessimo ordinare  la query: 1 var query1 = esamiSostenuti 2 .OrderBy(es => es.ID_Studente) 3 .Select(es => new { es.ID_Studente, es.Voto }); non solo per il campo ID_Studente, ma anche per il campo Voto, possiamo scrivere: 1 //Ordinamento Ascendente 2 var query2 = esamiSostenuti 3 .OrderBy(es => es.ID_Studente) 4 .ThenBy(es => es.Voto) ...

posted @ venerdì 16 maggio 2008 8.49 | Feedback (0)
Linq: Operatore Group By

Supponiamo di avere tre classi rappresentanti una ipotetica basi di dati "Università" (molto semplice). Una classe rappresentante lo studente, un classe rappresentante un esame sostenuto dallo studente ed una classe rappresentante l'associazione tra studenti ed esami sostenuti. Utilizzando un ClassDiagram avremmo qualcosa di simile a: Supponiamo ora, di voler recuperare, una volta popolate le collezione di oggetti opportune, quali esami siano stati sostenuti dagli studenti e con quale votazione, utilizzando LINQ e l'operatore di Group By. Possiamo scrivere del codice del tipo: 1 var queryEsamiSostenutiDaStudenti = 2 ...

posted @ venerdì 9 maggio 2008 8.28 | Feedback (1)
LINQ: ToList e ToArray

Se nella nostra applicazione abbiamo la necessità di leggere molte volte gli stessi dati, può essere conveniente (se questi non cambiano frequentemente nel tempo), l'utilizzo di ToList (o ToArray )  per convertire il risultato di una query linq in un oggetto List o Array da utilizzare come cache dei dati. Supponiamo di avere mappato una tabella Corsi con la seguente entità: 1 [Table(Name="Corso")] 2 public class Corso 3 { 4 5 [Column(IsPrimaryKey=true)] 6 ...

posted @ sabato 12 aprile 2008 14.14 | Feedback (0)
LINQ: Piccoli esperimenti

Trovato il tempo per installare la beta 1 di Visual Studio "Orcas" mi sono concesso 5 minuti per effettuare qualche (piccolo)esperimento con "LINQ" (per fortuna per WPF e WCF ho utilizzato le estensioni di VS2005 e non ho aspettato così tanto :-) ),ecco il codice         Dim lPersone As New Persone         Dim arrNomi() As String = New String() { _            "Pietro", "Giovanni", "Paolo", "Bottoni", "Alessandro", "Nicola", "Filippo", _            "Maria", "Stefano", "Luigi", "Pierluigi"}         'Trova tutti i nomi che iniziano per Pi ed ordina il risultato in modo crescente        Dim nomi As IEnumerable = From s As String In arrNomi Where s.StartsWith("Pi") Order By...

posted @ martedì 24 luglio 2007 11.43 | Feedback (0)
News

View Pietro Libro's profile on LinkedIn

DomusDotNet
   DomusDotNet

Pietro Libro