检查list2中的字符串值是否存在于list2中最有效的方法是什么?
伪代码示例
StringList List1 = {"a", "b", "c", "d"};
StringList List2 = {"d", "c", "b", "a"};
foreach (string a in List1)
{
foreach (string b in List2)
{
if(a==b)
{
WriteLine("match");
}
}
}
这种方法太慢而不是最佳解决方案,我使用的平台是BI#,C#的衍生产品。当前库中不存在Array.Exists。
答案 0 :(得分:3)
您可以使用Intersect
:
var allIntersections = List1.Intersect(List2);
foreach(string match in allIntersections)
Console.WriteLine(match);
如果您只是想知道是否至少有一个相交:
bool anyExist = allIntersections.Any();
答案 1 :(得分:0)
将List转换为逗号分隔字符串,允许使用标准InString
函数,在这种情况下称为StringContains
;
foreach (string a in List1)
{
if(StringContains(a, NewString))
{
WriteLine("Match");
}
}
答案 2 :(得分:0)
bool flag= list2.Except(list1).Any();
如果list1不包含list2中的所有内容,则为true。