巧妙运用 LINQ 查询 DataTable 数据
虽然 LINQ 查询是强大的数据操作工具,但它似乎并不直接适用于 DataTable。然而,解决这个看似不可能的问题有一个优雅的方案。
AsEnumerable() 扩展方法
在 DataTable 上执行 LINQ 查询的关键在于 AsEnumerable() 扩展方法。此方法扩展了 DataTable 类,返回一个 IEnumerable
示例:
考虑以下 LINQ 查询:
<code class="language-csharp">var results = from myRow in myDataTable.AsEnumerable() where myRow.Field<int>("RowNo") == 1 select myRow;</code>
此查询筛选 "RowNo" 列等于 1 的 DataTable 行。
其他扩展方法
除了 AsEnumerable() 之外,还有其他一些有用的 DataTable 操作扩展方法:
Lambda 表达式
您还可以使用 lambda 表达式来简化 LINQ 查询:
<code class="language-csharp">var result = myDataTable.AsEnumerable() .Where(myRow => myRow.Field<int>("RowNo") == 1);</code>
总结
虽然 LINQ 查询并非直接支持 DataTable,但 AsEnumerable() 扩展方法提供了一种直接且有效的方法来执行这些查询。此扩展方法与其他可用扩展方法一起,使您可以充分利用 LINQ 的强大功能来操作 DataTable。
以上是如何使用LINQ查询数据表?的详细内容。更多信息请关注PHP中文网其他相关文章!