Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using System.Diagnostics.CodeAnalysis;
- using System.Linq;
- namespace Linq_A
- {
- class AmicoComparer : IEqualityComparer<Amico>
- {
- public bool Equals(Amico x, Amico y)
- {
- return string.Compare(x.Nome, y.Nome) == 0 && x.Telefono == y.Telefono;
- }
- public int GetHashCode(Amico obj)
- {
- return obj.Nome.GetHashCode();
- }
- }
- class Amico
- {
- public String Nome { get; set; }
- public String Telefono { get; set; }
- public Amico(string nome, string telefono)
- { Nome = nome; Telefono = telefono; }
- }
- class Program
- {
- static void Main(string[] args)
- {
- //giochi è una sequenza di elementi stringhe
- string[] giochi = { "Borderlands 1", "Borderlands 2", "Borderlands 3", "Destiny 1",
- "Destiny 2", "Destiny 1", "Doom" };
- //il risultato è una sequenza (IEnumerable)
- //sintassi fluente (fluent)
- var sequenzaRisultato = giochi.Where(gioco => gioco.StartsWith("Bord"));
- //method sintax, query expression sintax
- var ris2 = from gioco in giochi where gioco.Contains("Borderlands") select gioco;
- sequenzaRisultato = giochi
- .Where(gioco => gioco.StartsWith("Bord"))
- .OrderBy(gioco => gioco.Length)
- .Select(gioco => gioco.ToUpper());
- //il risultato in quanto IEnumerable è "consumabile" con un foreach
- //foreach (string gioco in ris2) Console.WriteLine(gioco);
- sequenzaRisultato = giochi
- .Where((gioco, i) => gioco.StartsWith("Bord") && i % 2 == 0);
- sequenzaRisultato = giochi
- .Take(3);
- sequenzaRisultato = giochi
- .Skip(3);
- sequenzaRisultato = giochi
- .SkipWhile(gioco => gioco.Contains("Borderlands")).Take(1);
- sequenzaRisultato = giochi
- .Distinct();
- //string[] giochi = { "Borderlands 1", "Borderlands 2", "Borderlands 3", "Destiny 1",
- // "Destiny 2", "Destiny 1", "Doom" };
- //foreach (string gioco in sequenzaRisultato) Console.WriteLine(gioco);
- Amico[] amici = { new Amico("Giorgio", "0345-82347"), new Amico("Massimo", "0345-234643"),
- new Amico("Giorgio", "0345-82347")};
- var amiciFiltrati = amici
- .Distinct(new AmicoComparer());
- foreach (Amico amico in amiciFiltrati) Console.WriteLine(amico.Telefono);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement