क्या सी # में एक से अधिक मानों की समानता की तुलना करने का कोई त्वरित तरीका है?क्या यह संभवतः सी # में संभव है: अगर (ए == बी == सी == डी) {...}
something like:
if (5==6==2==2){
//do something
}
धन्यवाद
क्या सी # में एक से अधिक मानों की समानता की तुलना करने का कोई त्वरित तरीका है?क्या यह संभवतः सी # में संभव है: अगर (ए == बी == सी == डी) {...}
something like:
if (5==6==2==2){
//do something
}
धन्यवाद
public static class Common {
public static bool AllAreEqual<T>(params T[] args)
{
if (args != null && args.Length > 1)
{
for (int i = 1; i < args.Length; i++)
{
if (args[i] != args[i - 1]) return false;
}
}
return true;
}
}
...
if (Common.AllAreEqual<int>(a, b, c, d, e, f, g))
यह 52 मिनट में :)
नहीं यह संभव नहीं है, तो आप इसे अलग बयानों में विभाजित किया है।
if(x == y && x == z) // now y == z
{
}
गुड लक
सी # का उपयोग कर यह करने के लिए कोई सीधा तरीका नहीं है, लेकिन आप कुछ सहायक वर्ग के साथ जा सकते हैं। इस VB.NET विषय इस समस्या VB.Net: test multiple values for equality?
सी # में करने के लिए समर्पित की जाँच करें, एक समानता ऑपरेटर (==
) एक bool
का मूल्यांकन तो 5 == 6
false
मूल्यांकन करता है।
तुलना 5 == 6 == 2 == 2
का अनुवाद
(((5 == 6) == 2) == 2)
को जो
((false == 2) == 2)
जो एक int
के साथ एक bool
तुलना करने की कोशिश करेगा का मूल्यांकन होगा। केवल अगर आप बूलियन मानों की तुलना करेंगे तो इस तरह वाक्यविन्यास मान्य होगा, लेकिन शायद आप जो चाहते हैं वह न करें।
तरह से कई तुलना क्या करना है @Joachim सौएर सुझाव दिया है:
a == b && b == c && c == d
+1 यह समझाने के लिए कि क्यों यह सी # –
में काम नहीं करता है 'if' में, मैं 'args [i] .quals (args [i - 1]) का उपयोग करता हूं। यह संदर्भ प्रकारों का उपयोग करने की अनुमति देता है जो 'IEqualityComparer' को लागू करते हैं। डिफ़ॉल्ट रूप से '==' रेफरी प्रकारों पर संदर्भ समानता के लिए तुलना करता है, इसके अंतर्निहित मूल्य नहीं। – spoulson