【发布时间】:2015-01-02 23:55:33
【问题描述】:
我有两个数据集: 1.-
<dataset1>
<articles>
<name>name1</name>
<id>R12</id>
</articles>
<articles>
<name>name2</name>
<id>R13</id>
</articles>
<articles>
<name>name3</name>
<id>R14</id>
</articles>
<articles>
<name>name4</name>
<id>R15</id>
</articles>
<articles>
<name>name5</name>
<id>R16</id>
</articles>
<articles>
<name>name6</name>
<id>R17</id>
</articles>
<articles>
<name>name7</name>
<id>R18</id>
</articles>
<articles>
<name>name8</name>
<id>R19</id>
</articles>
</dataset>
2.
<dataset2>
<articles>
<name>name1</name>
<id>R12</id>
</articles>
<articles>
<name>name2</name>
<id>R13</id>
</articles>
<articles>
<name>nameTT</name>
<id>R14</id>
</articles>
<articles>
<name>name3</name>
<id>R20</id>
</articles>
</dataset>
第一个数据集是主数据集,第二个来自用户。我想比较并知道第二个中的数据是否存在于第一个中。 所以,在这种情况下,第二个数据集的数据,前两行是可以的,但最后两行是不行的,因为这些行不在第一行。 我试过像这样循环 2 个数据集:
foreach (DataRow data1 in dataset1.Tables[0].Rows)//
{
foreach (DataRow data2 in data2.Tables[0].Rows)
{
if (!(data1["id"] == data2["id"] && data1["name"] == data2["name"]))
{
return "error";
}
}
}
但它不起作用,因为该行稍后会进行此比较。我想告诉用户:对不起,id:RT14 的 data:nameTT 不是有效数据并退出 有任何想法吗?谢谢!
【问题讨论】:
-
你为什么要比较每一行和每一行?我认为你应该只比较对
-
提示;而不是立即返回错误,您应该在
is匹配时返回。如果到最后没有匹配,则可以返回错误。 -
是的,我想比较配对。我现在想知道哪一对不是正确的。当我得到一对不正确时,我返回错误并完成
-
你能像这样访问行吗?:dataset1.Tables[0].Rows[0]
-
您还有问题吗?这些帖子中的任何一个对您有帮助吗?如果您自己解决了问题,请发表您的答案:)
标签: c# linq loops dataset compare