Return 如果 list1 包含 list2 中的任何字符串的一部分,则每个项目都为真
Return true per item if list1 contains part of any string from list2
如果 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++;
}
列表是:
列表 1:
测试用例扫描文档
测试用例上传文件
测试用例删除文档
列表 2:
上传文件
扫描文档
表示不一致
所以列表框应该包含:
找到:上传文档
找到:扫描文档
未找到:表示不一致
但是我的结果不是每个字符串都找到。
感谢任何帮助。
But my results are Not found for every string.
因为 List.Contains
检查项目的完全匹配。例如。您正在检查 list1
中是否有字符串 "upload document"
,但事实并非如此。
您需要的是 Enumerable.Any
检查序列中是否有任何元素符合条件。 String.Contains
检查第二个列表中的字符串是否是 list1
:
中的字符串的子字符串
if (list1.Any(l1 => l1.Contains(list2[g])))
您只检查完整字符串是另一个列表中的项目之一,但您的要求是
If a string (or part of a string) from list1 is the same as a string in list2
所以您需要检查 list2
中的每个短语,如果短语 包含 来自 list1
的预期短语之一(呃,我建议为变量使用更具描述性的名称 - 将简化对话 :))
foreach (var requiredPhrase in list1)
{
if (list2.Any(phrase => phrase.Contains(requiredPhrase))
{
// Found
}
else
{
// Not found
}
}
以下内容应该对您有所帮助。
list2.Where(x=>list1.Any(c=>c.Contains(x)));
上述查询将遍历 list2
中的每个元素并检索 list1
[=13= 中任何项目的 子字符串 ]
如果 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++;
}
列表是:
列表 1:
测试用例扫描文档
测试用例上传文件
测试用例删除文档
列表 2:
上传文件
扫描文档
表示不一致
所以列表框应该包含:
找到:上传文档
找到:扫描文档
未找到:表示不一致
但是我的结果不是每个字符串都找到。
感谢任何帮助。
But my results are Not found for every string.
因为 List.Contains
检查项目的完全匹配。例如。您正在检查 list1
中是否有字符串 "upload document"
,但事实并非如此。
您需要的是 Enumerable.Any
检查序列中是否有任何元素符合条件。 String.Contains
检查第二个列表中的字符串是否是 list1
:
if (list1.Any(l1 => l1.Contains(list2[g])))
您只检查完整字符串是另一个列表中的项目之一,但您的要求是
If a string (or part of a string) from list1 is the same as a string in list2
所以您需要检查 list2
中的每个短语,如果短语 包含 来自 list1
的预期短语之一(呃,我建议为变量使用更具描述性的名称 - 将简化对话 :))
foreach (var requiredPhrase in list1)
{
if (list2.Any(phrase => phrase.Contains(requiredPhrase))
{
// Found
}
else
{
// Not found
}
}
以下内容应该对您有所帮助。
list2.Where(x=>list1.Any(c=>c.Contains(x)));
上述查询将遍历 list2
中的每个元素并检索 list1
[=13= 中任何项目的 子字符串 ]