// Esempio di query Linq
// join
// La clausola join permette di associare differenti datasource sulla base di un membro. Non e possibile
// confrontare con la clausola join con maggiore di, minore di">
// Esempio di query Linq
// join
// La clausola join permette di associare differenti datasource sulla base di un membro. Non e possibile
// confrontare con la clausola join con maggiore di, minore di">
// Esempio di query Linq
// join
// La clausola join permette di associare differenti datasource sulla base di un, diverso da, epossibile solo effettuare confronti di
// uguaglianza.
// Questo esempio di query Linq mediante la clausola join confronta l'indice Mansione della matrice customers
// con l'indice Mansione della matrice work, restituendo un elenco di customers con la stessa mansione comprendente il nome , la mansione e
// il livello di ogni customers.
// Richiamo NameSpace dal sistema operativo
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
// Spazio dei nomi Linq_join_
namespace Linq_join_
{
// Classe Program
class Program
{
// Metodo Statico Main
static void Main(string[] args)
{
// Richiamo metodo Unione
Unione();
}
// Metodo Statico Unione
public static void Unione()
{
// Matrice customers
var customers = new[]
{
// Dichiarazione Cliente 1 su matrice Nationomality
new { CustomerID = 1, Nome = " Customer1 " , Mansione = " Elettricista " },
// Dichiarazione Cliente 2 su matrice Nationomality
new { CustomerID = 2, Nome = " Customer2 " , Mansione = " Tubista " },
// Dichiarazione Cliente 3 su matrice Nationomality
new { CustomerID = 3, Nome = " Customer3 " , Mansione = " Idraulico " },
// Dichiarazione Cliente 4 su matrice Nationomality
new { CustomerID = 4, Nome = " Customer4 " , Mansione = " Meccanico " },
// Dichiarazione Cliente 5 su matrice Nationomality
new { CustomerID = 5, Nome = " Customer5 " , Mansione = " Softerista " },
// Dichiarazione Cliente 6 su matrice Nationomality
new { CustomerID = 6, Nome = " Customer6 " , Mansione = " Strumentista " },
};
// Matrice work
var work = new[]
{
// Dichiarazione Cliente 1 su matrice work
new {workID = 1, Mansione = " Elettricista " , Livello = " Quarto " },
// Dichiarazione Cliente 2 su matrice work
new {workID = 2, Mansione = " Tubista " , Livello = " Quarto " },
// Dichiarazione Cliente 3 su matrice work
new {workID = 3, Mansione = " Idraulico " , Livello = " Quarto " },
// Dichiarazione Cliente 4 su matrice work
new {workID = 4, Mansione = " Meccanico " , Livello = " Quarto " },
// Dichiarazione Cliente 5 su matrice work
new {workID = 5, Mansione = " Softerista " , Livello = " Quarto " },
// Dichiarazione Cliente 6 su matrice work
new {workID = 6, Mansione = " Softerista " , Livello = " Quarto " },
};
// Seleziona dati da da Matrice customers, e vrrifica se la mansione dei customers e uguale
// alla mansione della matrice work , e infine restituisce un elenco con il nome,Mansione e Livello.
var custom = customers .
// Clausola Select , ovvero seleziona con parametro c il none e mansione della matrice customers
Select(c =>
new {c.Nome , c.Mansione})
// Esegue il confronto trĂ la variabile customers e work
.Join(work , custs => custs.Mansione , job =p; // Seleziona dati da da Matrice customers, e vrrifica se la mansione dei customers e uguale
// alla mansione della matrice work , e infine restituisce un elenco con il nome,Mansione e Livello.
var custom = customers .
// Clausola Select , ovvero seleziona con parametro c il none e mansione della matrice customers
Select(c =>
new {c.Nome , c.Mansione})
&nbs> job.Mansione,(custs , job ) =>
// Restituisce l'elenco delle corrispondenze trovate dopo il confronto
new {custs.Nome , job.Mansione,job.Livello});
// Variabile appoggio numero customers trovati
int iCustomers = 0;
// Recupera dati da variabile custom e li passa a row
foreach ( var row in custom)
{
// Incrementa variabile appoggio numero customers trovati
iCustomers ++;
// Visualizza a utente il nome,da matrice customer e Mansione e Livello da variabile work
Console.WriteLine("Customer number" + '\t' + iCustomers.ToString() + '\t' + row.Nome + '\t' + row.Mansione + '\t' + row.Livello);
}
// Riga vuota
Console.WriteLine();
// Riga vuota
Console.WriteLine("Premere un tasto per uscire");
// Aspetta un tasto qualsiasi da tastiera
Console.ReadLine();
}
}
}