问题

有没有办法让以下返回真实?

 string title = "ASTRINGTOTEST";
title.Contains("string");
 

似乎没有超载允许我设置案例敏感性.目前我两者都是UPPERCASE,但这只是愚蠢的(我指的是 i18n 出现上下套管的问题).

更新
2001年12月31日终了的两年期收入和支出及准备金和基金结余变动报表 这个问题是古老的,从那以后我意识到,如果你关心全面的研究,我就要求一个非常广泛和困难的主题的简单答案。
2001年12月31日终了的两年期收入和支出及准备金和基金结余变动报表 对于大多数情况,在单语中,英文代码基于这个答案就足够了.我怀疑是因为大多数来到这里的人都属于这个类别,这是最受欢迎的答案.
2001年12月31日终了的两年期收入和支出及准备金和基金结余变动报表 This answer但是提出了我们无法比较文本不敏感的内在问题,直到我们知道两个文本都是相同的文化,我们知道文化是什么.这可能是一个不太受欢迎的答案,但我认为它更正确,这就是为什么我将它标记为这样.

  最佳答案

要测试字符串paragraph是否包含字符串word(谢谢@QuarterMeister)

 culture.CompareInfo.IndexOf(paragraph, word, CompareOptions.IgnoreCase) >= 0
 

其中culture CultureInfo 描述文本所用语言的实例.

这个解决方案对于case-inmission的定义是透明的,它依赖于语言.例如,英语语言为第九个字母的上下两个案例版本使用字符Ii,而土耳其语言使用这些字符为其29个字母long字母的第11和第12个字母.土耳其语的上个案例版本`i'是不熟悉的字符’sumple’.

因此字符串tinTIN在英文中是相同的单词,但土耳其语中的单词不同.据我所知,一个意味着’精神’,另一个意味着onomatopoia单词. (土耳其语,如果我错了,请纠正我,或者建议一个更好的例子)

总而言之,如果你知道文本中的语言,你只能回答问题’这两个字符串是一样的,但在不同的情况下’.如果你不知道,你必须进行一个punt.鉴于英国在软件上的霸权,你可能应该使用 CultureInfo.InvariantCulture ,因为它会以熟悉的方式出错.

  相同标签的其他问题

c#stringcontainscase-insensitive