0

以下を含むリストから重複したファイル名を削除したい:

http://www.test.com/download/imagename_A.jpg
http://www.test.com/download/imagename_B.jpg
http://www.test.com/download/imagename_C.jpg
http://fc07.test.net/fs49/f/2009/216/6/f/imagename_A.jpg
http://fc09.test.net/fs49/f/2009/195/d/8/imagename_B.jpg

最終的なリストで、同じファイル名を持つ重複を検索する必要があります。重複している場合は、domain.com ではなく domain.net が選択され、次の最終リストが生成されます。

http://fc07.test.net/fs49/f/2009/216/6/f/imagename_A.jpg
http://fc09.test.net/fs49/f/2009/195/d/8/imagename_B.jpg
http://www.test.com/download/imagename_C.jpg 

これはlinqで実行できると思います(この記事を見つけました-リスト内の重複を検索しますが、基準があります)が、それを機能させるのに十分な知識がありません。

4

2 に答える 2

2
var result = urls.GroupBy(url => Path.GetFileName(url))
                .Select(g => g.OrderByDescending(u=>new Uri(u).DnsSafeHost.EndsWith(".net")).First())
                .ToList();
于 2013-04-29T21:46:44.980 に答える
0

string.split('/') を使用して、(URL を文字列に変換した後) URL を「/」で分割し、作成された配列の最後の位置を確認してファイル名を比較できます。次に、配列の 2 番目の位置を string.split('.') で分割し、その配列の 3 番目の位置で .net/.com を確認できます。

于 2013-04-29T22:03:15.040 に答える