C# में String.Contains() मेथड जांचता है कि कोई सबस्ट्रिंग किसी स्ट्रिंग के भीतर मौजूद है या नहीं।
सिंटैक्स
bool result = str.Contains(substring);
उदाहरण
using System;
public class Demo {
public static void Main() {
string str1 = "United", str2 = "Uni";
bool res = str1.Contains(str2);
if (res)
Console.Write("The substring " + str2 + " is in the string " + str1);
else
Console.Write("The substring " + str2 + " is not in the string " + str1);
}
}
आउटपुट
The substring Uni is in the string United
Contains ओवरलोड्स (.NET Core 2.0+ / .NET 5+)
// केस-इनसेंसिटिव
bool result = str.Contains("uni", StringComparison.OrdinalIgnoreCase);
// कल्चर-स्पेसिफिक
bool result = str.Contains("uni", StringComparison.CurrentCultureIgnoreCase);
// StringComparison विकल्प
Ordinal // बाइनरी तुलना (तेज, डिफॉल्ट)
OrdinalIgnoreCase // केस-इनसेंसिटिव बाइनरी
CurrentCulture // वर्तमान कल्चर नियम
CurrentCultureIgnoreCase
InvariantCulture // अपरिवर्तनीय कल्चर
InvariantCultureIgnoreCase
IndexOf के साथ (स्थिति भी चाहिए तो)
int index = str.IndexOf("Uni");
if (index >= 0) {
Console.WriteLine($"Found at position {index}");
}
// सभी घटनाएं खोजें
int index = 0;
while ((index = str.IndexOf("Uni", index)) != -1) {
Console.WriteLine($"Found at {index}");
index++; // अगले कैरेक्टर से खोजें (ओवरलैपिंग के लिए)
}
Regex के साथ (पैटर्न मिलान)
using System.Text.RegularExpressions; bool contains = Regex.IsMatch(str, "Uni"); // केस-सेंसिटिव bool contains = Regex.IsMatch(str, "Uni", RegexOptions.IgnoreCase);
प्रदर्शन तुलना
| मेथड | उपयोग केस | प्रदर्शन |
|---|---|---|
Contains |
सरल सबस्ट्रिंग जांच | तेज (अनुकूलित) |
IndexOf |
स्थिति भी चाहिए | तेज |
Regex.IsMatch |
पैटर्न/वाइल्डकार्ड मिलान | धीमा (पार्सिंग ओवरहेड) |
StartsWith/EndsWith |
प्रीफिक्स/सफिक्स जांच | बहुत तेज |
मुख्य बिंदु
Containsकेस-सेंसिटिव है डिफॉल्ट रूप से।- केस-इनसेंसिटिव के लिए
StringComparison.OrdinalIgnoreCaseउपयोग करें। - खाली स्ट्रिंग
""हमेशा true लौटाता है। - नल स्ट्रिंग पर कॉल करने से
NullReferenceExceptionफेंका जाता है।