Torna al Thread
var ds1 = new DataSet();
var dt1 = new DataTable();
ds1.Tables.Add(dt1);
dt1.Columns.Add("Cod_Articolo", typeof(string));
dt1.Columns.Add("Descrizione", typeof(string));
dt1.Columns.Add("Quantità", typeof(int));
dt1.Columns.Add("Prezzo", typeof(decimal));
for (int i = 0; i < 10; i++)
{
dt1.Rows.Add("cod" + i, "descrizione" + i, rnd.Next(1, 10), (decimal)rnd.NextDouble() * 100 + 1m);
}
var ds2 = new DataSet();
var dt2 = new DataTable();
ds2.Tables.Add(dt2);
dt2.Columns.Add("Cod_Articolo", typeof(string));
dt2.Columns.Add("Descrizione", typeof(string));
dt2.Columns.Add("Quantità", typeof(int));
dt2.Columns.Add("Prezzo", typeof(decimal));
for (int i = 0; i < 10; i++)
{
dt2.Rows.Add("cod" + i, "descrizione" + i, rnd.Next(1, 10), (decimal)rnd.NextDouble() * 100 + 1m);
}
var dtJoined = from item1 in dt1.Rows.Cast<DataRow>()
join item2 in dt2.Rows.Cast<DataRow>()
on item1["Cod_Articolo"] equals item2["Cod_Articolo"]
select new
{
Cod_Articolo = item1["Cod_Articolo"],
Descrizione = item1["Descrizione"],
Prezzo = item1["Prezzo"],
Quantità = (int)item1["Quantità"] + (int)item2["Quantità"]
};
dtJoined.Dump();