【问题标题】:Case insensitive string search using contains使用包含不区分大小写的字符串搜索
【发布时间】:2012-04-28 16:29:58
【问题描述】:

我需要在目录中搜索包含输入文本的文件和文件夹,

我可以看到 File.Name.Contains(txtSearch) 是我需要的,但问题是它不会返回 true 当字符大小写(小写/大写)不匹配时。

虽然File.Name.Equals(txtSearch,StringComparison.InvariantCultureIgnoreCase) 解决了这个问题,但它要求搜索字符串应该完全相同。

【问题讨论】:

  • 您能否添加一些“问题”字符串的示例以及您希望它们做什么。给定的信息非常基本。

标签: c# string search equals contains


【解决方案1】:
var position =  File.Name.IndexOf(txtSearch, StringComparison.InvariantCultureIgnoreCase)

如果您的“文件名”包含任何出现的指定搜索字符串,position 将大于 -1

所以..

if(position > -1){
    //found files, do something
}

【讨论】:

  • 完美运行,它返回的项目甚至比 Windows 资源管理器还多!
【解决方案2】:
 var _reps = new List<string>(); // with variant data

_reps.ConvertAll<string>(new Converter<string,string>(delegate(string srt){srt= srt.ToLower(); return srt;})).Contains("invisible")

这是迄今为止我能找到的最干净的方法

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-05
    • 2011-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 2014-07-07
    相关资源
    最近更新 更多