C# C语言中的数据集转换

C# C语言中的数据集转换,c#,dataset,C#,Dataset,我有一个数据集,其中有一个数据表,如下所示: ... <description>"abcd"</description> <date>"1/1/2001"</date> ... <description>"1234"</description> <date>"1/1/2001"</date> ... <description>"abcd"</description> <

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

...
<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的地方

i、 e,对于我给出的示例值,我想得到:

...
<description>"abcd"</description>
<date>"1/1/2001"</date>
... 
<description>"abcd"</description>
<date>"1/1/2001"</date>
...
我见过这种方法,但我不确定它是否是一种好方法,或者对我正在尝试的工作是否有效


这样做的最佳实践是什么?

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

DataRow[] rows = ds.Tables[0].Select("description = 'abcd'");
声明rows数组后,您可以检查Select方法是否返回了某些内容,并使用调用的IEnumerable扩展将数组转换为DataTable


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

Select是DataTable类的方法,而不是DataSet的方法。你有没有试着用它来展示一些东西?@Steve有,但没有什么意义。我试着在第一张桌子上使用Select,结果弄得乱七八糟。我甚至不确定这是否是一个好方法来完成我正在尝试的工作-可能有一些克隆方法更好。如果您已经在内存中存储了该表,那么Select是实现目标的可行方法。但是,数据集可以有多个表,您应该知道哪个表包含您的值,然后应用Select和CopyToDataTable来提取行。顺便说一句,如果不起作用,添加一点代码总是更好的,因为它会为您的应用程序添加上下文question@Steve我不知道COPYTODATABLE方法。这为我解决了一切。如果你写下来作为回答,我会接受的
DataTable foundData = null;
if(rows != null)
    foundData = rows.CopyToDataTable();