Saya punya daftar objek. Salah satu properti dari entri objek individu adalah jumlah. Bagaimana saya mendapatkan jumlah jumlahnya?
Jika daftar saya bertipe double, saya mungkin dapat melakukan sesuatu seperti ini:
double total = myList.Sum();
Namun saya ingin sesuatu yang mirip dengan ini, namun sintaks ini salah.
double total = myList.amount.Sum();
Bagaimana saya harus menyelesaikan ini? Saya ingin menggunakan fungsi Sum jika memungkinkan alih-alih mengulang dan menghitung nilainya.
Dan jika Anda perlu melakukannya pada item yang cocok dengan kondisi tertentu ...
sumber
Alternatif lain:
sumber
.Select(i => i.Moons).Sum()
Anda dapat menggunakan.Sum(i => i.Moons)
Berikut adalah contoh kode yang dapat Anda jalankan untuk melakukan tes seperti itu:
Contoh yang sama untuk objek kompleks adalah:
Hasil saya dengan optimasi penyusun tidak aktif adalah:
dan untuk tes kedua adalah:
sepertinya LINQ umumnya lebih lambat daripada foreach (...) tetapi yang aneh bagi saya adalah bahwa foreach (...) tampaknya lebih cepat daripada for loop.
sumber
Stopwatch
diSystem.Diagnostics
karena merupakan kinerja tinggi perekam waktu. (Saya tidak menyuarakannya btw)DateTime.Now
untuk mengukur. Ini memiliki kinerja yang mengerikan karena selalu mengembalikan waktu setempat.DateTime.UtcNow
lebih cepat; Namun, masih tidak menggunakan resolusi setinggiStopwatch
kelas.