C#Contains方法的錯誤理解


一,我們先看看代碼:

            string aa = "1,2,3,44";
            string cc = "444";
            var a = aa.Split(',').Contains("4");
            var c = cc.Contains("4");
            Console.WriteLine("a輸出" + a);
            Console.WriteLine("c輸出" + c);        

二,我們的輸出結果為:

 看到這里是不是很多人都跟我有同樣的疑惑,為什么a是false?我們來看看封裝好的解釋:

1》,對應a輸出

2》,對應c輸出

綜上,我們可以理解為,兩個方法的選着對比源不一樣

 1》在a中,我們的源是一整個集合, 通過使用默認的相等比較器確定序列是否包含指定的元素,則是說,這個集合到底有沒包含4這個字符串,44和4判定為不一致,這里的比較點是44和4,而不是44里面的字符和4比較,所以這里的44和4判定為不一致的

2》而在c中,我們可以看到該值指定的字符串對象是否出現在此字符串中,這就是說,44和4的比較是指,4這個字符串時候在44出現過,這時返回的結果就是true了

 


免責聲明!

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



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