Come posso rendere insensibile la seguente distinzione tra maiuscole e minuscole?Come rendere String.Contains senza distinzione tra maiuscole e minuscole?
myString1.Contains("AbC")
Come posso rendere insensibile la seguente distinzione tra maiuscole e minuscole?Come rendere String.Contains senza distinzione tra maiuscole e minuscole?
myString1.Contains("AbC")
bool b = list.Contains("Hello", StringComparer.CurrentCultureIgnoreCase);
codice
[EDIT] estensione:
public static bool Contains(this string source, string cont
, StringComparison compare)
{
return source.IndexOf(cont, compare) >= 0;
}
Questo potrebbe lavorare :)
È possibile utilizzare:
if (myString1.IndexOf("AbC", StringComparison.OrdinalIgnoreCase) >=0) {
//...
}
Questo funziona con qualsiasi versione di .NET .
Due errori di battitura nella tua risposta, altrimenti buona ;-) dovrebbe essere (ovviamente) 'StringComparison.OrdinalIgnoreCase' – andreas
È possibile creare il proprio metodo di estensione per fare questo:
public static bool Contains(this string source, string toCheck, StringComparison comp)
{
return source != null && toCheck != null && source.IndexOf(toCheck, comp) >= 0;
}
E quindi chiamare:
mystring.Contains(myStringToCheck, StringComparison.OrdinalIgnoreCase);
Questa è senza dubbio la migliore risposta avvolgendolo in un metodo di estensione. –
@ Moo-Juice Sì, perché è familiare :) http://stackoverflow.com/a/444818/447156 –
Suggerirei chiamando la funzione qualcosa di diverso da una corrispondenza esatta con qualcosa nel quadro, come le proprie iniziali + contiene. Io uso questo approccio per un sacco di cose. Le mie iniziali sono PS quindi ho psContains, psStartsWith, psEndsWith, ecc. La ragione per cui penso che dovrebbe essere diversa è che puoi dire, semplicemente leggendo il codice, che cosa farà. Inoltre, se le firme sono compatibili, potrebbe non piacere al compilatore. Se sono abbastanza compatibili, la compilazione non ti aiuterà a scoprire se le tue estensioni sono in gioco. Le estensioni sono un vero gioiello di Dotnet. Se usato correttamente :) –
o duplicato di articolo di MSDN per [String.Contains] (http: // MSDN. microsoft.com/en-us/library/dy85x1sa.aspx), che suggerisce di "Vedere anche: IndexOf" ... –
Beh, questa domanda non è un -duplicate 100% se si chiede di risposte in VB.Net, poiché VB .Net ha caratteristiche che C# non ha, come l'operatore 'LIKE' che potrebbe essere usato qui. – sloth
Ha taggato entrambe le lingue, quindi probabilmente non gli importa di quale sia la soluzione, quindi il duplicato risponde completamente a questa domanda. Ad ogni modo, se modifica la sua domanda con onlt vb.net, entrerà automaticamente nella coda di riapertura. – SysDragon