Cominciamo ad analizzare oggi il metodo LinqToObjects Select. Vediamo i due overload presenti   public static IEnumerable<TResult> Select<TSource, TResult>(this IEnumerable<TSource> source, Func<TSource, TResult> selector) public static IEnumerable<TResult> Select<TSource, TResult>(this IEnumerable<TSource> source, Func<T ...

Il metodo "Monte Carlo" è una stategia di risoluzione di problemi che utilizza la statistica: se la probabilità di un certo evento è P possiamo simulare in maniera random questo evento e ottenere P facendo (numero di volte in cui il nostro evento è avvenuto)/(simulazioni totali). Vediamo come applicare questa strategia per ottenere un'approssimazione di pi greco. Data un cerch ...

I linguaggi funzionali come F# incoraggiano l'utilizzo della ricorsione piuttosto che dell'iterazione.  Solitamente quando una funzione o un metodo ne chiamano un altro viene aggiornata la "call stack" ovvero la pila che tiene traccia appunto della posizione in cui siamo nell'esecuzione e in quale punto dobbiamo eventualmente tornare.  Nel caso di ricorsioni molto profo ...

Supponiamo di avere un metodo che dobbiamo chiamare più volte e che esegue un calcolo lungo o comunque dispendioso in termini di risorse.  Supponiamo anche che non sappiamo prevedere con che parametri chiameremo questo metodo e quindi capiterà di chiamarlo più volte bella stessa esecuzione con gli stessi parametri e ripetere lo stesso calcolo più volte.  Come si ottimiz ...

Continuiamo con l'analisi del metodo LinqToSQL Where. La prima parte può essere trovata qui Cominciamo col riportare il codice del metodo: public static IEnumerable<TSource> Where<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate) { if (source == null) throw Error.ArgumentNull("source"); if (predicate == null) throw Er ...

Da questo post inizieremo ad analizzare tutti i metodi che compongono LinqToSQL e le loro rispettive implementazioni, liberamente consultabili sul sito http://referencesource.microsoft.com. La maggior parte dei metodi LinqToSQL sono extension method definiti nella classe statica Enumerable e applicabili ad oggetti che implementano l’interfaccia IEnumerable<T> (quindi la v ...

Per implementare l'interfaccia Ienumerable è necessario poter costruire una istanza di un IEnumerator. È necessario quindi implementare i metodi: - MoveNext - Reset - Dispose E la proprietà Current sia nella versione generica che in quella non generica in quanto l'interfaccia generica estende quella non generica. Per semplificare questo processo è possibile utilizzare l’i ...

Inauguriamo con questo post una serie su LinqToObject (da adesso in poi Linq) in cui andremo a studiare i sorgenti per capire in che modo questa funzionalità è stata implementata. Per chi non lo conoscesse Linq permette di eseguire numerose operazioni su delle collezioni di elementi tra cui: -          Filtrare -          Proiettare -          Medie e somme -          Inte ...

In questo articolo spieghiamo come implementare in modo semplice e rapido la funzione “ricordami” con le login social. Creando un nuovo progetto web application di tipo “web forms” è possibile scegliere la modalità di autenticazione “Individual User Accounts”. A questo punto abilitare le login social google, facebook o altre si riduce solamente alla configurazione delle varie ...

La libreria OpenXML permette di creare e modificare documenti office utilizzando C#. Tra le diverse operazioni che si possono effettuare c’è la possibilità di valorizzare una o più celle di un excel. L’interfaccia del client Excel permette in maniera molto semplice di formattare e decidere il tipo di dati di una cella e le stesse operazioni possono essere effettuate tramite l’ ...