datatable类型不能使用Asnumrable()的原因,并写出解决方案及代码
时间: 2024-02-23 11:00:26 浏览: 37
Datatable类型不能使用AsEnumerable()方法的原因已经在上面回答过了。下面是一些解决方案及代码:
1. 使用DataTableExtensions类中的方法进行Linq查询,例如CopyToDataTable()、AsDataView()等。
代码示例:
```csharp
using System.Data;
using System.Linq;
...
// 创建一个DataTable对象
DataTable dt = new DataTable();
// 添加列
dt.Columns.Add("Id", typeof(int));
dt.Columns.Add("Name", typeof(string));
dt.Columns.Add("Age", typeof(int));
// 添加数据
dt.Rows.Add(1, "Tom", 18);
dt.Rows.Add(2, "Jerry", 20);
dt.Rows.Add(3, "Lucy", 22);
// 使用DataTableExtensions类中的CopyToDataTable()方法进行Linq查询
var result = dt.AsEnumerable().Where(r => r.Field<int>("Age") > 20).CopyToDataTable();
// 输出结果
foreach (DataRow row in result.Rows)
{
Console.WriteLine(row["Id"] + "\t" + row["Name"] + "\t" + row["Age"]);
}
```
2. 将DataTable类型转换为IEnumerable类型,再使用AsEnumerable()方法进行Linq查询。
代码示例:
```csharp
using System.Data;
using System.Linq;
...
// 创建一个DataTable对象
DataTable dt = new DataTable();
// 添加列
dt.Columns.Add("Id", typeof(int));
dt.Columns.Add("Name", typeof(string));
dt.Columns.Add("Age", typeof(int));
// 添加数据
dt.Rows.Add(1, "Tom", 18);
dt.Rows.Add(2, "Jerry", 20);
dt.Rows.Add(3, "Lucy", 22);
// 将DataTable类型转换为IEnumerable类型
IEnumerable<DataRow> rows = dt.Rows.Cast<DataRow>();
// 使用AsEnumerable()方法进行Linq查询
var result = rows.AsEnumerable().Where(r => r.Field<int>("Age") > 20);
// 输出结果
foreach (DataRow row in result)
{
Console.WriteLine(row["Id"] + "\t" + row["Name"] + "\t" + row["Age"]);
}
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)