-3

私は2つの文字列配列を持っています。1つはfile1.docx、file2.docx、file3.docxのようなファイル名を含み、もう1つの配列はUIコントロールからのもので、最初の配列のようにする必要がありますが、日付が追加されています。最初の配列のすべての項目が 2 番目の配列に存在する (2 番目の配列項目文字列の一部である) ことを検証する必要があります。

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 メソッドを使用していますが、このコードは何とか改善できるのでしょうか?

私たちのコードで使用されているアルゴリズムは決して失敗しないことが判明しました:) 少なくとも1つのアイテムが見つかった場合、常にtrueを返すためです:)その後、見つかった値をtrueに設定してforeachループを通過するだけで、すべて問題ありません:)このコードを変更

4

1 に答える 1

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

編集

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 に答える