在C#中,是否可以通過簡單指令(無LINQ,否爲cicle)從DataSet的所有行中獲取特定列的所有值?獲取DataSet中列的所有值
4
A
回答
2
只能遍歷行,如Utaal noted in this answer。
您可能認爲DataTable.DefaultView.RowFilter
將支持分組,但它不支持它(它主要提供Where
子句的等效功能,包含一些基本聚合 - 雖然不是簡單的分組)。
3
據我所知,沒有直接的方法來獲得這些;但for循環非常簡單,顯然不會比其他任何東西更耗費資源。
0
除了Utaal的回答,您可以使用查詢的結果填充新的DataTable對象,該查詢只選擇原始數據源中的一列,假設它是RDBMS。這樣做的好處是可以讓你指定易於在代碼中表達的東西,但易於在SQL中表達,如DISTINCT
查詢。
11
爲什麼不使用LINQ?對於沒有相同限制的人來說,這裏有三種方法可以做到這一點,最底層的兩種都使用LINQ。
C#
List<object> colValues = new List<object>();
//for loop
foreach (DataRow row in dt.Rows) {
colValues.Add(row["ColumnName"]);
}
//LINQ Query Syntax
colValues = (from DataRow row in dt.Rows select row["ColumnName"]).ToList();
//LINQ Method Syntax
colValues = dt.AsEnumerable().Select(r => r["ColumnName"]).ToList();
VB
Dim colValues As New List(Of Object)
'for loop
For Each row As DataRow In dt.Rows
colValues.Add(row("ColumnName"))
Next
'LINQ Query Syntax
colValues = (From row As DataRow In dt.Rows Select row("ColumnName")).ToList
'LINQ Method Syntax
colValues = dt.Rows.AsEnumerable.Select(Function(r) r("ColumnName")).ToList
要使用AsEnumerable
方法上DataTable
,你必須有一個參考其添加System.Data.DataSetExtensions LINQ extension methods。否則,只需將DataTable
的Rows
屬性作爲DataRow
類型(您不必使用查詢語法執行此操作,因爲它會自動爲您投射)。
+0
我無法在過時的.NET Compact Framework應用程序中使用LINQ。但是你的答案可能對其他人有用。 – 2013-07-11 18:14:09
相關問題
- 1. 獲取散列表中的所有值
- 2. 獲取所有選中值的列表
- 3. ListCtrl - wxPython獲取列中的所有值
- 4. 獲取一列中所有行的值
- 5. 獲取Sqllite中的所有列值android
- 6. 獲取DataSet中的
- 7. 從asp.net中的dataSet獲取單個值
- 8. jquery從表列中獲取所有值
- 9. 獲取所有列的最常見值
- 10. BeautifulSoup獲取特定列的所有值
- 11. 獲取所有值的排列 - 成對
- 12. 獲取所有值
- 13. 獲取所有值?
- 14. 如何獲取DataSet的一列?
- 15. 獲取PostgreSQL中列中所有現有值的集合
- 16. 獲取所有多個列表框值
- 17. Perl,獲取所有散列值
- 18. 獲取dataGridTextboxColumn的所有值
- 19. PHP獲取陣列中特定列的所有值
- 20. 獲取Firebird中所有序列及其值的列表SQL
- 21. 從DataSet獲取值到一個變量
- 22. 無法單獨獲取所有列值,而是獲得一列中的所有值postgresql --9.5
- 23. 獲取地圖中的所有值
- 24. 獲取mysql中所有值的總和
- 25. 獲取ul中所有量程的值
- 26. 獲取memcached中的所有值
- 27. 獲取Firebase中的所有子值android
- 28. 如何從數組中的散列中獲取所有值?
- 29. 如何使用jdbc中的ResultSet.getBinaryStream()從所有列中獲取值?
- 30. 獲取所有值所需的HashMap
這就是我的想法。我希望這可以成爲一種方式。謝謝。 – 2009-07-03 17:04:55