martedì 21 maggio 2024

linq metodo ToLookup per creare un oggetto con chiave

 


Tramite il metodo "ToLookup" di una lista, possiamo ottenere un oggetto composto da chiave ed oggetto. Nel metodo ToLookup, possiamo indicare per quale colonna utilizzare come colonna, come rappresentata nella figura precedente.

Di seguito il frammento di codice di esempio.

C#

 List<Persona> persone = new List<Persona>();

 Persona persona = new Persona();

 persona.Cognome = "Mattei";

 persona.Nome = "Emanuele";

 persona.Eta = 1;

 persone.Add(persona);

 persona = new Persona();

 persona.Cognome = "Cristaldi";

 persona.Nome = "Luigi";

 persona.Eta = 2;

 persone.Add(persona);

 persona = new Persona();

 persona.Cognome = "Bianchi";

 persona.Nome = "Luca";

 persona.Eta = 3;

 persone.Add(persona);

var NuovoOggetto = persone.ToLookup(p => p.Nome);


lunedì 20 maggio 2024

Angular la gestione dello stile

Si riporta l'articolo scritto per il sito https://www.iprogrammatori.it/articoli/javascript/art_angular-la-gestione-dello-stile-_1858.aspx


In questo nuovo articolo sulla tecnologia Angular, utilizzando il linguaggio di programmazione TypeScript, vedremo come gestire l’aspetto grafica delle varie pagine, in particolare lo Style.
Tramite alcune tecniche e classi, possiamo impostare uno stile ad un controllo o riferimento tag html in maniera anche dinamica. L’articolo vuole fornire quella conoscenza di base sufficiente a poter gestire in vari progetti l’aspetto grafico delle varie pagine html.
Utilizzeremo come ambiente di sviluppo Visual Studio Code, anche se va bene qualsiasi strumento (editor) per la gestione dei siti con Angular.


Lo stile statico e dinamico

Dopo aver creato un progetto in Angular, nel file app.component.html, impostiamo un div con del testo con il colore del testo verde.
Di seguito il frammento di codice delle suddette operazioni.

HTML

 <div style="color: greenyellow;">titolo</div>

Se invece abbiamo la necessita di impostare il colore del testo in base ad un valore, possiamo verificare se una variabile è uguale ad un certo  valore ed in base a tale valore impostare un colore.

Di seguito un esempio che verifica se la variabile è uguale al valore 0, imposta un colore, altrimenti altro colore al testo.

 TypeScript:

export class AppComponent {

  public indice: number = 4;

 

}

 

HTML.

 <div [style]="indice == 0 ? 'color: greenyellow' : 'color: blue' ">titolo2</div>



Ora non resta che testare il nostro frammento di codice per verificare il testo cambiare di colore in base alla variabile.
Nel frammento di codice precedente, abbiamo impostato uno stile (il colore del testo) in base al valore di una variabile. Il testo avrà un colore diverso a seconda del valore.
Altra tecnica per impostare dinamicamente lo stile di un elemento html nella pagina, è quello di utilizzare il singolo attributo. Di seguito si riporta un frammento di codice, con il quale si imposta il colore del carattere utilizzando proprio l’attributo Color visto nel frammento di codice precedente.


HTML

  <div [style.color]="indice == 4 ? 'red' : 'green' ">titolo3</div>


Se invece abbiamo la necessità di impostare il colore tramite una funzione ed in base al parametro restituire un certo risultato, tale tecnica è possibile aggiungere il nome della funzione.

Di seguito si riporta il frammento di codice HTML e TypeScript delle suddette operazioni.

HTML:

 <div [style.color]="getColore(5)">titolo4</div>

 

 

TypeScript:

public getColore(parametro: number) : string {

 let  returnColore: string = 'Orange';

 

  if(parametro==5)

  returnColore = 'Black';

 

  return returnColore;

 

}

 

La direttiva NgStyle

Altra tecnica per impostare il colore ad un elemento della pagina html, è quello di utilizzare la Direttiva “NgStyle” una parola chiave di Angular che permette di applicare un suo stile.
Il frammento di codice qui di seguito, imposta il colore del testo se una variabile rispetta una condizione, altrimenti altro colore del testo .

HTML:

  <div [ngStyle]="indice==7 ? { color: 'pink'} : { color: 'darkgreen'}" >Titolo 5</div>

 

TypeScript:

public indice: number = 7;

 Altra tecnica è quella di passare ad una variabile il valore che si vuole impostare ad un attributo dello stile.

Di seguito il frammento di codice delle suddette operazioni.


HTML:

<div [ngStyle]="{color: stile}" >Titolo 6</div>

 

TypeScript:

  public stile: string = "red";

 


La direttiva NgClass

Con questa direttiva, ossia parola chiave, possiamo applicare uno stile ad un elemento html.
Si crea nel file di tipo “.css” per esempio app.component.css, due stili, che impostano due colori al testo.
Di seguito il frammento di codice di tale dichiarazione.


CSS:

.testo-rosso {

  color:red;

}

.testo-blue {

  color:blue;

}

 



Nel file TypeScript, scriviamo una variabile con il quale assegneremo il nome dello stile, che vogliamo applicare ad un elemento della pagina.
Di seguito il frammento di codice delle suddette operazioni.

TypeScript:

export class AppComponent {

 

  public stileClasse: string = "testo-rosso";

 

Nel file html, tramite la direttiva NgClass, applichiamo la variabile.

HTML:

<div [ngClass]="stileClasse" >Titolo 7</div>

 

 Conclusioni

L’articolo ha fornito una panoramica sulla gestione della grafica nelle varie tecniche utilizzando il linguaggio di programmazione TypeScript e la tecnologia Angular. I vari esempi e scenari permettono al programmatore di adottare una tecnica adeguata e soprattutto conoscere le possibilità e strategie da applicare nella creazione della propria applicazione.

Angular e TypeScript nella loro versatilità offrono al programmatore diverse possibilità di gestire gli aspetti grafici dei singoli elementi della pagina. 

domenica 19 maggio 2024

Linq ordinamento con il secondo tipo di ordinamento con ThenBy

Nel caso che dobbiamo ordinare una lista per un secondo elemento, possiamo utilizzare il metodo ThenBy, di Ling, utilizzando il metodo OrderByDescending.

Di seguito un frammento di codice, con il quale effettua un ordinamento per nome e come secondo elemento di ordinamento il cognome a parità di iniziali uguali tra loro del primo elemento di ordinamento.

C#
  List<Persona> persone = new List<Persona>();
  Persona persona = new Persona();
  persona.Cognome = "Mattei";
  persona.Nome = "Emanuele";
  persona.Eta = 1;
  persone.Add(persona);
  persona = new Persona();
  persona.Cognome = "Cristaldi";
  persona.Nome = "Luigi";
  persona.Eta = 2;
  persone.Add(persona);
  persona = new Persona();
  persona.Cognome = "Bianchi";
  persona.Nome = "Luca";
  persona.Eta = 3;
  persone.Add(persona);


  var personeOrdinate = persone.OrderByDescending(x => x.Nome).ThenBy(c => c.Cognome);



sabato 18 maggio 2024

Sito di monitoraggio ransomware ed altre informazioni utili con il sito ransomfeed

Un sito in lingua italiana che fornisce interessanti informazioni sugli attacchi di tipo ransomware.

Il sito Ransomfeed offre una serie di informazioni aggiornate ed è molto ben fatto.


venerdì 17 maggio 2024

Estendere la classe string con un nuovo metodo

Supponiamo che abbiamo la necessità nel linguaggio di programmazione C#, di estendere la classe (per esempio dotare della classe string di un metodo) che utilizziamo in un progetto form.
Di seguito la classe che estendiamo con un metodo che conta solo le lettere all'interno di una valore.

    public static class EstendiString
    {
        public static int ContaSoloTesto(this string testo)
        {
            if (string.IsNullOrWhiteSpace(testo))
            {
                return 0;
            }
            int totaliCaratteri =  testo.ToList().Where(p => char.IsLetter(p)).Count();
            return totaliCaratteri;
        }
    }

Di seguito il relativo utilizzo

 string MioTesto = "Testo!,3";

 int totaleCaratteri = MioTesto.ContaSoloTesto();

 MessageBox.Show(totaleCaratteri.ToString()); //Restituisce 5



Download gioco Darkblade Ascent

 



Disponibile gratuitamente e senza limitazioni il gioco di azione Darkbalde Ascent.

Il gioco è in lingua italiana e per sistemi operativi Windows.

Per il download e maggiori informazioni visitate il seguente sito Darkblade Ascent in arrivo - Epic Games Store

giovedì 16 maggio 2024

Software gratuito per la creazione dei sottotitoli nei video subtitld

 

Il programma Subtitld, permette la creazione dei sottotitoli a video che abbiamo sul nostro pc.

Il software può essere installato su sistemi operativi Windows e  Linux .

Software gratuito e con codice sorgente.

Per il download e maggiori informazioni visitate il seguente sito https://subtitld.org/



mercoledì 15 maggio 2024

C# salvare un file immagine in memoria su pc, una tabella di Excel

Tramite la classe "Clipboard" possiamo rilevare un immagine in memora e salvarla su pc.

Supponiamo che vogliamo salvare una tabella in Excel, basterà selezionare la tabella e poi tramite il pulsante "copia" di Microsoft Excel copiarla in memoria.

A questo punto, tramite il metodo GetImage della classe "Clipboard" rilevare la tabella selezionato e salvata in memoria come immagine.

Di seguito il frammento di codice di tale operazioni.


  Image immagineDaMemoria = Clipboard.GetImage();

  immagineDaMemoria?.Save("C:\\varie\\test2.png", System.Drawing.Imaging.ImageFormat.Png);


martedì 14 maggio 2024

Download gioco Return Alive

 


Un gioco di guerre stellari quello proposto da EpicGames, che tramite il gioco Return Alive, per sistemi operatovi Windows, offre una grafica molto interessante e buona giocabilità.

Il gioco è scaricabile dal seguente sito https://store.epicgames.com/it/p/return-alive-0ffdd1 

lunedì 13 maggio 2024

Download gioco Firestone Free Offer

 



Un nuovo gioco gratuito disponibile da Epicagems per sistemi operativi Windows.

Il gioco di combattimento Firestone Free Offer, disponibile per Windows è un gioco con una grafica molto apprezzata.

Fino al 16 maggio 2024 il gioco si potrà scaricare gratuitamente dopo tale data il download sarà a pagamento.

Per maggiori informazioni e download visitate il seguente sito Firestone Free Offer - Epic Games Store

sabato 11 maggio 2024

Software gratuito portatile sulla gestione dei file audio e video

Se cercate una serie di programmi gratuiti portatili, che non richiedono installazione, in ambito video ed audio, dal seguente sito https://portableapps.com/apps/music_video è presente una lista di programmi portatili.
Il sito ed i programmi sono in lingua inglese.

venerdì 10 maggio 2024

C# get number serial and model hard disk and SSD

La classe ManagegementObject ci permette di rilevare alcune informazioni utili dell'hardware del nostro computer.  Il frammento di codice qui di seguito, illustra una tecnica per rilevare il numero seriale e modello del proprio Hard Disk o SSD, il tutto tramite il linguaggio di programmazione C#.

ManagementObjectSearcher ManObjectSearcher = new ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive");

 foreach (ManagementObject wmiObj in ManObjectSearcher.Get())  {

      var serialNumber = wmiObj.GetPropertyValue("SerialNumber");

      var modello = wmiObj.GetPropertyValue("Model");

}

giovedì 9 maggio 2024

C# linq OrderByDescending per ordinare in maniera discendente

Nel caso che dobbiamo ordinare in maniera discendente (dal più grande al più piccolo) una lista o un array, tramite il metodo OrderByDescending, possiamo ottenere tale ordinamento.

Di seguito un frammento di codice di utilizzo.

//Lista
  List<Persona> persone = new List<Persona>();
  Persona persona = new Persona();
  persona.Cognome = "Mattei";
  persona.Nome = "Emanuele";
  persona.Eta = 1;
  persone.Add(persona);
  persona = new Persona();
  persona.Cognome = "Cristaldi";
  persona.Nome = "Luigi";
  persona.Eta = 2;
  persone.Add(persona);
  persona = new Persona();
  persona.Cognome = "Bianchi";
  persona.Nome = "Luca";
  persona.Eta = 3;
  persone.Add(persona);



//Ordinamento


 var personeOrdinate = persone.OrderByDescending(x => x.Eta);