Vb.net 数组列表检查

Vb.net 数组列表检查,vb.net,Vb.net,我有一个arraylist,其中包含类似以下格式的URL: stackoverflow.com/questions/ask/hello stackoverflow.com/questions/ask stackoverflow.com/questions stackoverflow.com/ 如果我只想保留第一个,并删除其余的,我会怎么做,因为从技术上讲,他们不是重复的。 我曾想过使用子字符串操作,但不确定如何实现。任何想法都值得赞赏。假设我正确理解了这个问题,您可以通过在ArrayList中循

我有一个arraylist,其中包含类似以下格式的URL:

stackoverflow.com/questions/ask/hello
stackoverflow.com/questions/ask
stackoverflow.com/questions
stackoverflow.com/

如果我只想保留第一个,并删除其余的,我会怎么做,因为从技术上讲,他们不是重复的。
我曾想过使用子字符串操作,但不确定如何实现。任何想法都值得赞赏。

假设我正确理解了这个问题,您可以通过在ArrayList中循环,构建找到的域的列表来实现这一点,并且仅当找到的域还不是第一个列表的成员时,才同时输出一个新列表

或者,您可以通过反向迭代ArrayList来构建域到url的字典。由于字典每个键只能有一个值,URL将在字典中覆盖自己,并且每个域只能有一个URL。由于您以相反的方式进行迭代,因此将留下一个包含ArrayList中第一个匹配项的字典。然后可以使用LINQ只获取值(例如
MyDictionary.Select(elem=>elem.Value)

我提到的第二种方法的一个示例实现(在C#中,您可以对其进行转换)是:

Dictionary MyDictionary=newdictionary();
foreach(MyArrayList.Reverse()中的字符串Url)
MyDictionary[Url.Split(“/”[0]]=Url;

有几十种方法可以完成这项任务。这只是两个示例。

不要使用arraylist,也不要在此处询问重复项。请澄清——您想删除除一个元素外的所有共享同一根域名的数组元素吗?你如何决定保留哪一个?你说的“保留第一个”是什么意思?在您的示例中只保留“stackoverflow.com/questions/ask/hello”,因为所有其他人都在同一个域中?很抱歉,我无法使用搜索重复答案,因为它不起作用。我想保留第一个,因为它是添加到列表中的正确url。我正在解析html和第一个url,在本例中为“stackoverflow.com/questions/ask/hello”,我需要保留并删除其他url。为什么给我负面评价?@Joel我同意这是一个写得不好的问题,但是为什么他不应该在这里问关于傻瓜的问题呢?谢谢你,先生,我会尝试一下。如果答案是你需要的,请将答案标记为接受,否则请更好地澄清你的问题。我不希望被其他人嘲笑,除了bytenik;我试了一下,请你看一下我的代码,我现在脑子有点糊涂了,不能把每个链接都当作URL的post中的字符串来理解。post中的每个部分都是Reverse(),如果不是dictionary.ContainsKey(link)然后dictionary.Add(link,part)如果下一步我也尝试了相反的方法,但我没有得到一篇与相应url(域)匹配的唯一帖子,那么就结束;我将再次查看我的解析代码,看看是否可以在添加到ArrayList之前清除这些代码。谢谢
Dictionary<string, string> MyDictionary = new Dictionary<string, string>();
foreach(string Url in MyArrayList.Reverse())
    MyDictionary[Url.Split("/")[0]] = Url;