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 集合中.
我有一个包含单个数据表的数据集,如下所示:
...
<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
DataTable foundData = null;
if(rows != null)
foundData = rows.CopyToDataTable();
请注意,DataSet 不参与此过程,它只是原始 table 的容器,CopyToDataTable 返回的新 table 不包含在 DataSet 的 Tables 集合中.