c# - 从列表中过滤重复的 URL 域 c#

标签 c# .net vb.net winforms filter

我在 list(Of string) 中有一个包含 100,000 个 url 的列表,其中可以包含表单中的 url。

yahoo.com
http://yahoo.com
http://www.yahoo.com

我尝试过使用正则表达式和 Uri 类的组合,但这没有帮助,所以我转储了代码。我也尝试使用此代码,但它只会删除精确形式的重复项,因为它不是特定于域的。

list = new ArrayList<T>(new HashSet<T>(list))

如何过滤这些重复项并仅保留其中一个网址(如果它包含相同的名称,例如 yahoo)。

谢谢

[编辑]

请注意

所有 URL 都属于不同的域,但通常可能有重复,就像我上面给出的示例

另外,我正在使用 .net 2.0,所以我无法使用 linq

最佳答案

这对我有用

    [TestMethod]
    public void TestMethod1()
    {
        var sites = new List<string> {"yahoo.com", "http://yahoo.com", "http://www.yahoo.com"};

        var result = sites.Select(
            s =>
            s.StartsWith("http://www.")
                ? s
                : s.StartsWith("http://") 
                      ? "http://www." + s.Substring(7) 
                      : "http://www." + s).Distinct();

        Assert.AreEqual(1, result.Count());
    }

关于c# - 从列表中过滤重复的 URL 域 c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6440489/

相关文章:

c# - 从字符串中删除所有非 ASCII 字符

.net - 如何使用ConcurrentDictionary,INotifyCollectionChanged,INotifyPropertyChanged创建自定义可观察集合

c# - 如何使用 C# 访问 iOS App 的文档文件夹

vb.net - 替换 VB.NET 中括号中的字符串

c# - 派生类对象在内存中是什么样子的?

c# - EF 5 查找分析器

c# - Regex vs Tryparse 性能最好的是什么

c# - 使用openxml将背景颜色应用于excel中的特定单元格

mysql - 在 Visual Basic 中,如何查看/编辑远程 mysql 数据库中的表

javascript - 第一次加载谷歌图表时,垂直轴标签没有出现