更好的C#算法使一个数据集与另一个数据集相等?
这是我们的问题: 我们有一个UI绑定到的当前数据集(20个表,每个表数千行)。通常,我们使用自定义PubSub实现来应用业务流程中其他参与者(客户机和服务器)的增量更改。由于我们客户的旧习惯和PubSub的一些可靠性问题,我们的一些客户坚持按我们的硬刷新按钮 该按钮获取数据的完整副本,并清除现有数据集(#1)并合并新数据集(#2),有效地使数据集#1与#2相同。我们的合并算法相当简单:更好的C#算法使一个数据集与另一个数据集相等?,c#,algorithm,dataset,C#,Algorithm,Dataset,这是我们的问题: 我们有一个UI绑定到的当前数据集(20个表,每个表数千行)。通常,我们使用自定义PubSub实现来应用业务流程中其他参与者(客户机和服务器)的增量更改。由于我们客户的旧习惯和PubSub的一些可靠性问题,我们的一些客户坚持按我们的硬刷新按钮 该按钮获取数据的完整副本,并清除现有数据集(#1)并合并新数据集(#2),有效地使数据集#1与#2相同。我们的合并算法相当简单: public static void MergeDataSets(ref DataSet original,
public static void MergeDataSets(ref DataSet original, DataSet updated)
{
if (null == updated)
{
return;
}
if(null == original)
{
original = updated.Copy();
}
else
{
// TODO: ELI: it would be nice to have an actual merge algorithm to publish changes from updated to original.
original.Clear();
original.Merge(updated, false, MissingSchemaAction.Add);
}
}
正如你所看到的,我确实注意到我们应该设计一个真正的合并算法。但当时,我们的客户接受了性能权衡的副作用。至少我们是这么想的。无论如何,主要的副作用是绑定到我们的数据的任何数据网格(基础设施)都会被重置,因此所有扩展/折叠的信息都会丢失,选择等等
那么,有人能推荐一个已经做了类似工作的第三方库吗?若否,有何建议如何落实??如果我们真的成功了,我一定会把结果发布在这里…IIRC,数据集支持diffgram-这些有什么帮助吗看,我会查出来,但大多数文章似乎都涉及“合并”2个数据集。。。我们试图做的不是真正的合并。我们希望数据集#1与数据集#2等效。所以基本上,我们需要找到所有的差异,然后将它们应用到数据集#1。我们拭目以待。编辑们,请在编辑之前阅读并充分理解问题!!!!将标题改为“合并”是错误的,这表明您甚至懒得阅读完整的问题。这不是一场比赛,因为你编辑了一些东西。谢谢。合并目前是如何工作的?当远程更改和当前更改都不同于base.IIRC时,合并冲突会发生什么情况?数据集支持diffgram-这些有什么帮助吗看,我会查出来,但大多数文章似乎都涉及“合并”2个数据集。。。我们试图做的不是真正的合并。我们希望数据集#1与数据集#2等效。所以基本上,我们需要找到所有的差异,然后将它们应用到数据集#1。我们拭目以待。编辑们,请在编辑之前阅读并充分理解问题!!!!将标题改为“合并”是错误的,这表明您甚至懒得阅读完整的问题。这不是一场比赛,因为你编辑了一些东西。谢谢。合并目前是如何工作的?当远程更改和当前更改与基本更改不同时,合并冲突会发生什么情况。