不是集合增量,而是每個元素的增量。下面是一些代碼來解釋我的意思:我可以在LINQ中獲得兩個IEnumerables的增量嗎?
var deltaTotals = _deltaEnumerable.Select(a => a.Amount).ToList();
var oldTotals = _totalsEnumerable.Select(d => d.Amount).ToList();
// trigger change in _totalsEnumerable
// ** can LINQ do the lines below
var newTotals = totalsEnumerable.Select(d => d.Amount);
for (var i = 0; i < 7; i++) {
var newAmount = oldTotals[i] - deltaTotals[i];
Assert.That(newTotals.ElementAt(i), Is.EqualTo(newAmount));
}
這是最後四行代碼似乎像有可能是一個更優雅的方式在LINQ做不知。
乾杯,
Berryl
很酷。 Zip似乎並不是我最喜歡透露的名字,但至少它很短。當我第一次看到你的答案時,我以爲它是一個下載!歡呼 – Berryl 2010-02-28 20:37:29
誠然,這不是世界上最容易發現的名字。我認爲Eric Lippert提出了這個術語:http://blogs.msdn.com/ericlippert/archive/2009/05/07/zip-me-up.aspx。無論哪種方式,這是一個有用的擴展。 :) – Aaronaught 2010-02-28 20:40:59
這個名字來自功能語言。這就是所謂的,因爲它像拉鍊一樣工作。默認情況下,它應該做一些類似於表單元組的東西,其中第一個元素來自列表1,第二個來自2. – flq 2010-02-28 20:41:53