Kyl*_*Mit 13
为什么没有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();
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
要AsEnumerable在a上使用该方法DataTable,您必须具有对System.Data.DataSetExtensions的引用,该引用添加LINQ扩展方法.否则,您可以只转换as类型的Rows属性(您不必使用Query语法执行此操作,因为它会自动为您投射).DataTableDataRow
只有通过迭代行,正如Utaal 在这个答案中指出的那样。
您可能期望DataTable.DefaultView.RowFilter会支持分组,但事实并非如此(它主要提供子句的等效功能Where,以及一些基本的聚合 - 尽管不是简单的分组)。
| 归档时间: |
|
| 查看次数: |
13174 次 |
| 最近记录: |