Asumsikan saya memanggil titik akhir API dan mendapatkan kembali beberapa nilai tukar dalam bentuk DataTable. Saya kemudian memfilter nilai tukar tersebut menggunakan pernyataan LINQ untuk hanya mengembalikan nilai yang saya minati.
LINQ untuk memfilter nilai tukar:
var results = exchangeRates.Rows.Cast<DataRow>()
.Where(r => r.Field<double>("Rate") > 0)
.Where(r => r.Field<string>("FromCurrency").ToUpper() == "USD")
.Select(y => new
{
FromCurrency = y.Field<string>("FromCurrency"),
ToCurrency = y.Field<string>("ToCurrency"),
ExchangeRate = y.Field<double>("Rate")
}).ToList();
Pernyataan LINQ kembali:
+------------------+----------------+---------+
| OriginalCurrency | TargetCurrency | Rate |
+------------------+----------------+---------+
| USD | GBP | 88.452 |
+------------------+----------------+---------+
| USD | CAD | 132.819 |
+------------------+----------------+---------+
Saya ingin menambahkan, pada catatan yang dihasilkan, nilai tukar timbal balik. Jadi jika saya memiliki nilai tukar USD ke GBP sebesar 88,45 saya ingin menambahkan rekor GBP ke USD sebesar 113,06. Jadi intinya saya menukar kolom OriginalCurrency dan TargetCurrency dan mengambil kebalikan dari rate pertama lalu mengalikannya dengan 10.000. Saya memiliki LINQ untuk memfilter catatan tetapi tidak tahu cara menyesuaikan pernyataan LINQ untuk menambahkan dua catatan nilai tukar timbal balik baru.
Pengembalian pernyataan LINQ yang diinginkan:
+------------------+----------------+--------+
| OriginalCurrency | TargetCurrency | Rate |
+------------------+----------------+--------+
| USD | GBP | 88.45 |
+------------------+----------------+--------+
| USD | CAD | 132.81 |
+------------------+----------------+--------+
| GBP | USD | 113.06 |
+------------------+----------------+--------+
| CAD | USD | 75.30 |
+------------------+----------------+--------+