gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 22:55:04 25 4
gpt4 key购买 nike

我在 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com