2011-01-19 17 views
15

संभव डुप्लिकेट:
C#: Are string.Equals() and == operator really same?स्ट्रिंग तुलना: ऑपरेटर ==() बनाम बराबर()

स्ट्रिंग तुलना, जो दृष्टिकोण बेहतर है (और सुरक्षित) के लिए:

string s1="Sarfaraz"; 
string s2="Nawaz"; 

bool result1 = (s1==s2) ;//approach 1 
bool result2 = s1.Equals(s2) ;//approach 2 

या दोनों हुड के नीचे समान हैं?

+1

यह निर्भर करता है कि क्या आप "कुत्ते" और "कुत्ते" को एक ही शब्द मानते हैं, जबकि आप स्ट्रिंग का उपयोग करते हुए अपने पहले दृष्टिकोण में स्ट्रिंग में हेरफेर कर सकते हैं। एक्वाल्स (एस 1, एस 2, स्ट्रिंग कॉम्परिसन। कंटेंटकल्चर इग्नोरकेस) आसान और सुरुचिपूर्ण हो सकता है। –

+0

@ रामहाउंड: बहुत अच्छा बिंदु! – Nawaz

+0

एक चेतावनी यह है कि यदि तार शून्य हैं तो आप एक अपवाद फेंक देंगे। बेशक वे यदि आप उनके मूल्य की तुलना कर रहे हैं तो आप एक मूल्य की उम्मीद कर रहे हैं। –

उत्तर

14

मुझे Equals() पसंद है क्योंकि उपलब्ध StringComparison विकल्प बहुत उपयोगी है।

== और != ऑपरेटरों पर आधारित हैं मूल्य, इसलिए उनका उपयोग करने के लिए सुरक्षित कर रहे हैं, भले ही String एक संदर्भ प्रकार है।

+7

उल्लेखनीय है कि 's1'' null' है तो परिणाम अलग-अलग होंगे। – porges

संबंधित मुद्दे