c# - 如果 list1 包含 list2 中任何字符串的一部分,则每项返回 true
问题描述
如果 list1 中的字符串(或字符串的一部分)与 list2 中的字符串相同,则需要将字符串添加到列表框中。
我现在有:
int g = 0;
while (g < musthaves.Count())
{
if (list1.Contains(list2[g].ToString()))
{
listBox14.Items.Add("Found: " + list2[g].ToString());
}
else
{
listBox14.Items.Add("Not found: " + list2[g].ToString());
}
g++;
}
名单是:
list1:
testcase扫描文档
testcase上传文档
testcase删除文档
list2:
上传文件
扫描文件
显示不一致
所以列表框应该包含:
找到:上传文件
找到:扫描文件
未找到:表示不一致
但是我的结果不是每个字符串都找到的。
任何帮助表示赞赏。
解决方案
但是我的结果不是每个字符串都找到的。
因为List.Contains
检查项目的完全匹配。例如,您正在检查 中是否有字符串"upload document"
,list1
但事实并非如此。
您需要Enumerable.Any
检查序列中的任何元素是否与条件匹配。并String.Contains
检查来自第二个列表的字符串是否是来自的字符串的子字符串list1
:
if (list1.Any(l1 => l1.Contains(list2[g])))
推荐阅读
- laravel - Laravel 资源集合显示空字段
- c++ - 使用自定义 AVIOContext 查找流信息时出现 FFMPEG 错误
- sql - 如何在 HIVE 中查询 JSON 格式?
- git-lfs - Git LFS“服务器上不存在对象”,因为它试图找到 LFS 未跟踪的旧文件?
- html - 如何为我的按钮设置响应高度
- bash - 使用 afconvert 命令行工具将 .mp3 文件转换为 m4r
- php - PhP获取目录中所有文件的内容
- excel - 时间总和,转换为每小时升数 Excel 电子表格
- google-sheets - 从两个不同的单元格获取单元格值
- python - Ubuntu服务器中的文件排列不同