C# 如何检查文件名在整个文件名中是否包含一些字符串值
我有一个大约37k的文件名和8k的字符串数组。我想检查数组中的每个字符串是否存在于这些文件名中,并且它应该返回该文件名。我试过下面的代码。但是没有得到要求的答案 我已附上下面的文件名图片 例如,如果res的值为“000000000000000 100108979”,并且filename包含该值,则它应该返回文件名C# 如何检查文件名在整个文件名中是否包含一些字符串值,c#,.net,console-application,C#,.net,Console Application,我有一个大约37k的文件名和8k的字符串数组。我想检查数组中的每个字符串是否存在于这些文件名中,并且它应该返回该文件名。我试过下面的代码。但是没有得到要求的答案 我已附上下面的文件名图片 例如,如果res的值为“000000000000000 100108979”,并且filename包含该值,则它应该返回文件名 快速解决方案可以是: var results = files.Any(r => r.IndexOf(res) >= 0); 这是因为包含搜索匹配字符串,而不仅仅是其中的
快速解决方案可以是:
var results = files.Any(r => r.IndexOf(res) >= 0);
这是因为包含搜索匹配字符串,而不仅仅是其中的一部分。
算法可以优化,也可以尝试其他方法,但这只是一个wuick修复
操作请求后编辑
要获取文件名,可以使用:
var filename = files.FirstOrDefault(r => r.IndexOf(res) >= 0);
if (string.IsNullOrEmpty(filename)) {
// NOT FOUND
} else {
// Filename contains your full filename
}
它包含什么类型的文件?如果找到匹配项,您希望执行什么操作?您想保留所有匹配的结果,还是只关心文件是否匹配一个结果?你能提供一个更完整的例子吗,因为这还不够。它包含.jpeg文件@prasadelkikakara在找到匹配项后,我想返回匹配的文件名@kurthamilton从这里我能返回匹配的确切文件名吗。@NiranjanS:拿一些书来学习基础知识。然后试着自己编写代码,研究人们是如何解决同样的问题的(所以要学习);这么做几年,你就会比我强得多@谢谢你,兄弟。告诉我如何思考逻辑并应用它。
var filename = files.FirstOrDefault(r => r.IndexOf(res) >= 0);
if (string.IsNullOrEmpty(filename)) {
// NOT FOUND
} else {
// Filename contains your full filename
}