C#中的数据集转换

本文关键字:转换 数据集 | 更新日期: 2023-09-27 18:28:39

我有一个数据集,其中有一个如下所示的数据表:

...
<description>"abcd"</description>
<date>"1/1/2001"</date>
... 
<description>"1234"</description>
<date>"1/1/2001"</date>
...
<description>"abcd"</description>
<date>"1/1/2001"</date>
...

我想构建一个新的数据集,它包含相同的值、行和列,但仅在描述为"abcd"的地方。

即,对于我给出的示例值,我希望得到:

...
<description>"abcd"</description>
<date>"1/1/2001"</date>
... 
<description>"abcd"</description>
<date>"1/1/2001"</date>
...

我已经看过DataTable.Select()方法,但我不确定它是否是一种好方法,或者是否完全适用于我想要做的事情

做这种事的最佳做法是什么?

C#中的数据集转换

Select方法从应用它的DataTable中提取一个DataRow数组。
DataRow[] rows = ds.Tables[0].Select("description = 'abcd'");

声明了行数组后,您可以检查Select方法是否返回了一些内容,并使用名为CopyToDataTable 的IEnumerable扩展将数组转换为DataTable

DataTable foundData = null;
if(rows != null)
    foundData = rows.CopyToDataTable();

请注意,此过程中不涉及数据集,但它只是原始表的容器,并且CopyToDataTable返回的新表不包括在数据集的Tables集合中。