C# 中的数据集转换

Dataset Conversion in C#

我有一个包含单个数据表的数据集,如下所示:

...
<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() 方法,但我不确定它是否是一个好方法,或者是否完全适合我正在尝试做的事情。

做这样的事情的最佳做法是什么?

Select 方法从应用它的 DataTable 中提取一个 DataRow 数组。

DataRow[] rows = ds.Tables[0].Select("description = 'abcd'");

声明行数组后,您可以检查 Select 方法是否返回了某些内容,并使用名为 CopyToDataTable

的 IEnumerable 扩展将该数组转换为 DataTable
DataTable foundData = null;
if(rows != null)
    foundData = rows.CopyToDataTable();

请注意,DataSet 不参与此过程,它只是原始 table 的容器,CopyToDataTable 返回的新 table 不包含在 DataSet 的 Tables 集合中.