C#中用於在DataGridView的每個DataGridViewRow上循環的正確lambda語法是什麼?舉個例子,假設函數根據Cells [0]中的某個值生成行.Visible = false。C# - 用於在DataGridView.Rows上循環的Lambda語法
1
A
回答
4
那麼,在枚舉中沒有內置的ForEach
擴展方法。我不知道一個簡單的foreach
循環可能不會更容易?這是小事寫的,雖然...
在一推,也許你可以在這裏有效使用Where
:
foreach (var row in dataGridView.Rows.Cast<DataGridViewRow>()
.Where(row => (string)row.Cells[0].Value == "abc"))
{
row.Visible = false;
}
但就個人而言,我只是用一個簡單的循環:
foreach (DataGridViewRow row in dataGridView.Rows)
{
if((string)row.Cells[0].Value == "abc")
{
row.Visible = false;
}
}
4
看到我對這個問題的回答:Update all objects in a collection using LINQ
這是不可能的內置LINQ表達式,但很容易編碼自己。爲了不干擾列表<T> .ForEach,我調用了迭代方法。
例子:
dataGrid.Rows.Iterate(r => {r.Visible = false; });
迭代來源:
public static void Iterate<T>(this IEnumerable<T> enumerable, Action<T> callback)
{
if (enumerable == null)
{
throw new ArgumentNullException("enumerable");
}
IterateHelper(enumerable, (x, i) => callback(x));
}
public static void Iterate<T>(this IEnumerable<T> enumerable, Action<T,int> callback)
{
if (enumerable == null)
{
throw new ArgumentNullException("enumerable");
}
IterateHelper(enumerable, callback);
}
private static void IterateHelper<T>(this IEnumerable<T> enumerable, Action<T,int> callback)
{
int count = 0;
foreach (var cur in enumerable)
{
callback(cur, count);
count++;
}
}
相關問題
- 1. 在DataGridView.Rows中使用for循環Int []
- 2. 循環語法的C++
- 3. C++怪異循環語法
- 4. C# - lambda與嵌套循環
- 5. 關於lambda語法
- 6. 用於循環語法困惑
- 7. Lambda循環內
- 8. C++更短的lambda語法
- 9. 循環的語法
- 10. C++ AMP,用於循環到parallel_for_each循環
- 11. 循環的C++ lambda表達式線程
- 12. BNF語法使用循環語句
- 13. For循環語法在Javascript
- 14. 用於在cmd中創建等待循環的語法
- 15. for循環的語法在R
- 16. C用於循環執行
- 17. Javascript循環語法
- 18. For循環語法?
- 19. 角循環語法
- 20. C++變換和lambda - 替換循環
- 21. c#lambda表達式與循環
- 22. C#for循環循環表達式語法
- 23. 用於重複語句的循環
- 24. 用於Ruby語言的C'for循環
- 25. 如何循環使用lambda的XMLStreamReader
- 26. 用於循環的批文件無法在循環內執行
- 27. 多循環語法錯誤
- 28. 奇怪的循環語法
- 29. 循環的PHP語法
- 30. Python的While循環語法
這就是我在做什麼,現在(在foreach)。只是想拉伸我的大腦。在我目前的一個項目中,我經常循環使用這個DataGridView。它變老了。大聲笑 – BuddyJoe 2009-01-16 20:22:53