-3

我有两个字符串数组,一个包含文件名,如 file1.docx、file2.docx、file3.docx,另一个数组来自 UI 控件,必须像第一个但添加了日期。我需要验证第一个数组的所有项都存在于第二个数组中(是第二个数组项字符串的一部分)。

foreach (UITestControl t in children)
{
    Boolean found = false;

    var div = t as HtmlDiv;
    if (div == null) continue;
    String actualText = div.InnerText;

    foreach (string t1 in searchResultNames)
    {
        if (!found)
        {
            if (actualText.IndexOf(t1, StringComparison.InvariantCultureIgnoreCase) >= 0)
            {
                found = true;
                result.AssertTrue(found, t1 + "found in search result");
            }
        }
    }

我使用 indexOf 方法,但也许可以以某种方式改进此代码?

我们的代码中使用的算法结果是永远不会失败:) 因为如果找到至少一个项目,它总是返回 true :) 然后它只是通过 foreach 循环并将找到的值设置为 true 并且一切都很好:) 所以我需要更改此代码

4

1 回答 1

0
bool allExist = !firstArray.Except(secondArray).Any()

EDIT

bool allExist = !firstArray.Except(secondArray, new MyComparer()).Any()

public class MyComparer : IEqualityComparer<string>
{
    public bool Equals(string x, string y)
    {
        return x.StartsWith(y);
    }

    public int GetHashCode(string obj)
    {
        return obj[0].GetHashCode();
    }
}
于 2013-04-17T14:03:16.533 回答