2011-01-24 5 views
2

Je le code suivant où frequencyOfReminders = "2 days"C# manipulation des chaînes

dailyReminders = frequencyOfReminders.IndexOf("day", StringComparison.OrdinalIgnoreCase) >= 0; 

Je veux dailyReminders pour être vrai dois-je utiliser le ci-dessous à la place?

dailyReminders = frequencyOfReminders.Contains("day", StringComparison.OrdinalIgnoreCase) >= 0; 

J'aurais dû être plus clair. J'ai la chaîne frequencyOfReminders = "2 days" pour par exemple et je veux que dailyreminders renvoie true s'il trouve la chaîne "day" dans frequencyOfReminders, les autres valeurs où il retournera vrai sont: daily, 3 days, 1 day, .. . etc

+0

Pouvez-vous formater les s'il vous plaît parties de code que le code? – RQDQ

+0

Qu'essayez-vous de faire exactement? – JLWarlow

+0

'daily' ne correspondra pas' day'. Est-ce une faute de frappe? – fearofawhackplanet

Répondre

5

La méthode String.Contains renvoie une valeur booléenne, de sorte que la valeur> = 0 ne sera pas compilée.

devrait être comme ceci:

dailyReminders = frequencyOfReminders.Contains("day", StringComparison.OrdinalIgnoreCase); 

Cependant, dans ce cas, je pencherais vers Contient pour une meilleure lisibilité.

Edit:

Oh, vous cherchez plusieurs termes de recherche. Dans ce cas, une façon de le faire est avec de multiples Contient des appels (simples):

dailyReminders = frequencyOfReminders.Contains("day", StringComparison.OrdinalIgnoreCase) 
       || frequencyOfReminders.Contains("daily", StringComparison.OrdinalIgnoreCase); 

Une autre façon est d'entrer dans les expressions régulières (expliquer pleinement cette approche prendra un peu de travail), mais voici un lien qui explique:

http://www.regular-expressions.info/dotnet.html

Les expressions régulières sont incroyablement puissant, mais il y a une courbe d'apprentissage.

0
dailyReminders = frequencyOfReminders.Contains("day", StringComparison.OrdinalIgnoreCase) 

ne nécessite pas> = 0. Dans les deux cas, le résultat est le même.

0

La fonction de chaîne "contient" ne retourne un booléen, donc quelque chose comme

boolean dailyReminders = frequencyOfReminders.Contains("day"); 

fixerait dailyReminders true.

0

IndexOf renvoie -1 lorsque la sous-chaîne n'a pas été trouvé si:

dailyReminders = frequencyOfReminders.IndexOf("day", StringComparison.OrdinalIgnoreCase) != -1