在C#中,可以使用foreach
和LINQ來比較一條記錄與以前的記錄。如果是的話,讓我知道解決方案。使用Linq與以前的記錄進行比較
1
A
回答
2
肯定的:
var results = sequence.Zip(sequence.Skip(1), (p, c) => f(p, c));
其中f
是你比較p
和c
的方式。
或者:
public static IEnumerable<Tuple<T, T>> AdjacentPairs<T> (
this IEnumerable<T> sequence
) {
var e = sequence.GetEnumerator();
if(e.MoveNext()) {
var c = (T)e.Current;
while(e.MoveNext()) {
var p = c;
c = (T)e.Current;
yield return Tuple.Create(p, c);
}
}
}
然後:
var results = sequence.AdjacentPairs()
.Select(t => f(t.Item1, t.Item2));
或者與foreach
:
public static IEnumerable<Tuple<T, T>> AdjacentPairs<T> (
this IEnumerable<T> sequence
) {
var p = default(T);
bool first = true;
foreach(var c in sequence) {
if(!first) {
yield return Tuple.Create(p, c);
}
else {
first = false;
}
p = c;
}
}
用法是一樣的原始枚舉。
Zip
很好,如果迭代你的收藏兩次便宜。對於一般解決方案,原始枚舉器是首選。爲了完整起見,我們使用了foreach
。
+0
什麼是Zip方法? –
+1
@ King King:['Zip'](http://msdn.microsoft.com/zh-cn/library/dd267698.aspx)。 – jason
+0
謝謝,它看起來像是一個框架版本4.5的東西,我正在使用3.5 –
相關問題
- 1. 將當前記錄與前一記錄進行比較
- 2. Linq - 查詢前的記錄比較
- 3. 將當前記錄與Python中的MongoDB現有記錄進行比較
- 4. 使用C#將特定數據與表記錄進行比較?
- 5. 將頂部記錄與頂部記錄進行比較-1
- 6. ng-與之前的值進行比較
- 7. 使用Linq查詢將日期與DateTime字段進行比較
- 8. 如何使用linq將列表與查找進行比較?
- 9. SQL更新記錄與另一個表中的記錄進行比較
- 10. Sql將記錄與兩列中的其他記錄進行比較
- 11. RxJava結合observables並與以前的值進行比較
- 12. 將主動記錄結果與排序結果進行比較
- 13. 如何在上傳前將CSV文件中的記錄與數據庫中的記錄進行比較
- 14. 將字符數組與數據庫記錄進行比較並讀取記錄
- 15. Gridview將當前行與前一行進行比較
- 16. MySQL觸發器:在插入前比較記錄與先前記錄
- 17. 如何將以前測試運行的值與當前值進行比較?
- 18. 比較使用LINQ
- 19. 比較使用LINQ
- 20. 比較使用LINQ
- 21. 將我的當前目錄與unix中的預定義目錄進行比較
- 22. 如何將行與CSV中的前一行進行比較?
- 23. 使用linq查詢比較列與列
- 24. 比較使用Linq進行部分匹配的兩個列表
- 25. 比較的日期與LINQ
- 26. 將Enumerable與linq查詢中的枚舉進行比較
- 27. 將目錄的tar文件與原始目錄進行比較
- 28. 將長期運行任務的結果與以前的結果進行比較
- 29. 如何將登錄的用戶名與DataTrigger進行比較
- 30. 基於先前比較變量的值進行比較?
發佈您到目前爲止的內容。 –
我的英語可能不是您的第一語言,但請嘗試用正確的拼寫/語法寫一點。我很確定你知道「s」和「soln」不是真正的單詞。 –