C#中Predicate的一點理解


本人喜歡代碼看起來比較優雅,而C#真的是一種很優雅的語言。比如我們New List<string> StrList;

如果我們想查找StrList,可以使用C#提供的

StrList.Find , StrList.FindAll , StrList.Exists , StrList.FindLast , StrList.FindIndex

例如:

StrList.FindAll(delegate(String str) { return str.Length <= 3; });

使用這種匿名代理,使得C#的代碼看起來更加清晰。上述的關鍵字都是用到了Predicate作為參數的類型。

那除了C#提供的關鍵字,我們還可以自己實現Predicate來實現自己的代碼。如:

我們在對類使用IEnumerable接口的時候可以自己實現Find方法:

public List<string> Find(Predicate<string> match)
        {
            foreach (string str in this)
            {
                if (match(str))
                {
                     return str;
                }
            }
            return string.Empty;
        }

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM