<p>Pour tester si la chaine <code>paragraph</code> contient la chaine <code>word</code> (merci a <span class="mention">@QuarterMeister</span>)</p>
<pre><code class="lang-auto">culture.CompareInfo.IndexOf(paragraph, word, CompareOptions.IgnoreCase) >= 0
</code></pre>
<p>Ou <code>culture</code> est l’instance de <a href="http://msdn.microsoft.com/en-gb/library/system.globalization.cultureinfo(v=vs.110).aspx"><code>CultureInfo</code></a> decrivant la langue dans laquelle le texte est ecrit.</p>
<p>Cette solution est transparente quant a <strong>la definition de l’insensibilite a la casse, qui depend de la langue</strong>. Par exemple, la langue anglaise utilise les caracteres <code>I</code> et <code>i</code> pour les versions majuscule et minuscule de la neuvieme lettre, tandis que la langue turque utilise ces caracteres pour les <a href="http://en.wikipedia.org/wiki/Dotted_and_dotless_I">onzieme et douzieme lettres</a> de son alphabet de 29 lettres. La version majuscule turque de ‘i’ est le caractere peu familier ‘I’.</p>
<p>Ainsi, les chaines <code>tin</code> et <code>TIN</code> sont le meme mot <em>en anglais</em>, mais des mots differents <em>en turc</em>. Si j’ai bien compris, l’un signifie ‘esprit’ et l’autre est un mot onomatopeique. (Turcs, veuillez me corriger si je me trompe, ou suggerer un meilleur exemple)</p>
<p>En resume, vous ne pouvez repondre a la question ‘ces deux chaines sont-elles identiques mais dans des casses differentes’ <em>que si vous savez dans quelle langue le texte est ecrit</em>. Si vous ne le savez pas, vous devrez deviner. Etant donne l’hegemonie de l’anglais dans le logiciel, vous devriez probablement recourir a <a href="https://stackoverflow.com/questions/9760237/what-does-cultureinfo-invariantculture-mean"><code>CultureInfo.InvariantCulture</code></a>, car cela se trompera de maniere familiere.</p>