2010-08-08 51 views
8

earlier question of mine有關的新問題已經出現。我有一些使用正則表達式來查找電子郵件地址的代碼。除非它返回重複的匹配,否則它工作得很好。我搜索了這個網站,很久以前發現了一個問題,那就是處理類似的問題,答案與將正則表達式邏輯與字符串[]和Distinct()方法混合有關。不幸的是,我對數組的理解仍然有限。在C#中篩選重複匹配的正則表達式搜索的首選方法是什麼?

我的代碼將所有正則表達式匹配放入MatchCollection。除此之外,我該如何與MatchCollection進行交互,以便僅向正則表達式添加唯一匹配項?

回答

11

可以使用Distinct做在.net 3.5或更新版本,如果你對你的對手收集調用Cast,使您可以使用LINQ擴展方法:

MatchCollection matchCollection = Regex.Matches(input, pattern); 
List<string> matches = matchCollection 
    .Cast<Match>() 
    .Select(m => m.Value) 
    .Distinct() 
    .ToList(); 

這是假設你有以下usings你的文件頂部:

using System.Linq; 
using System.Collections.Generic; 
+0

工程就像一個魅力。謝謝一堆。 – Stev0 2010-08-08 21:29:28

相關問題