当前位置:  开发笔记 > 小程序 > 正文

查找两个.NET DataTable的交集

如何解决《查找两个.NETDataTable的交集》经验,为你挑选了1个好方法。

是否有一种相对简单的方法来获取.NET中两个DataTable的交集?

我可以想到显而易见的方法(在O(n ^ 2)中自己迭代两个表),但如果它可用,我想要一些更优雅的东西.我怀疑可能有一种我没有看到的聪明方式.当然,可读性和可维护性很重要,所以我试图远离任何太"光滑"的东西.

有什么好主意吗?

编辑:看起来布莱恩沃茨有一个非常好的3.5解决方案,但不幸的是我在.NET 2.0(我应该提到.)



1> Bryan Watts..:

使用.NET 3.5:

using System.Data;

public static class DataTableExtensions
{
    public static IEnumerable Intersect(this DataTable table, DataTable other)
    {
        return table.AsEnumerable().Intersect(other.AsEnumerable());
    }

    public static IEnumerable Intersect(this DataTable table, DataTable other, IEqualityComparer comparer)
    {
        return table.AsEnumerable().Intersect(other.AsEnumerable(), comparer);
    }
}

推荐阅读
雨天是最美
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有