c# - 从 DataSet 中获取列的所有值

标签 c# dataset

在 C# 中,是否可以通过简单的指令(没有 LINQ,没有 For cicle)从 DataSet 的所有行中获取特定列的所有值?

最佳答案

为什么没有 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

要在 DataTable 上使用 AsEnumerable 方法,您必须有一个对 System.Data.DataSetExtensions 的引用,它添加了 LINQ extension methods .否则,您可以将 DataTableRows 属性转换为 DataRow 类型(您不必使用 Query 语法执行此操作,因为它会自动为您转换)。

关于c# - 从 DataSet 中获取列的所有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1080071/

相关文章:

.net - 即使在 TableAdapter.Update 运行后立即,DataSet.HasChanges 也为 true

.net - 数据集应该驻留在 n 层(多层)架构中的什么位置?

c# - 文字换行字符

c# - 在 C# winforms 中消除继承 "magic"的最佳方法?

c# - 将 IEnumerable<T> 转换为 List<SelectListItem> 的 Lambda 扩展方法

python - 如何根据列数据类型过滤数据框

python - 小时、日期、天数计算

sql - 有用的常用 SQL 数据集?

javascript - 回发中的 ASP.NET 锁屏(母版页)

c# - NLog 给出异常可能的解释是缺少零参数和单个参数 Common.Logging.Configuration.NameValueCollection 构造函数