1

ArrayList に、レコードに特定の文字が含まれているかどうかを検索できる方法があるかどうか疑問に思っていました。そうであれば、文全体を取得して文字列に入れます。例えば:

list[0] = "C:\Test3\One_Title_Here.pdf";
list[1] = "D:\Two_Here.pdf";
list[2] = "C:\Test\Hmmm_Joke.pdf";
list[3] = "C:\Test2\Testing.pdf";

探している:"Hmmm_Joke.pdf"
取得したい:"C:\Test\Hmmm_Joke.pdf"に入れますRemove()

    protected void RemoveOther(ArrayList list, string Field)
    {
        string removeStr;

        -- Put code in here to search for part of a string which is Field --
        -- Grab that string here and put it into a new variable --
        list.Contains();
        list.Remove(removeStr);

    }

これが理にかなっていることを願っています。ありがとう。

4

4 に答える 4

4

配列リスト内の各文字列をループし、文字列に検索用語が含まれていない場合は、次のように新しいリストに追加します。

string searchString = "Hmmm_Joke.pdf";
ArrayList newList = new ArrayList();

foreach(string item in list)
{
    if(!item.ToLower().Contains(searchString.ToLower()))
    {
        newList.Add(item);
    }
}

これで、検索文字列値の一致を除外した新しいリストを操作できます。

注: 大文字と小文字の問題を回避するために、文字列を比較用に小文字にしました。

于 2013-09-25T20:20:45.267 に答える
1

から値を削除するには、値ArrayListをループして、目的の値が含まれているかどうかを確認する必要があります。そのインデックス、または多数ある場合はインデックスを追跡します。

次に、削除したい値をすべて見つけたら、呼び出しArrayList.RemoveAtて必要な値を削除できます。複数の値を削除する場合は、最大のインデックスから開始してから、小さなインデックスを処理します。そうしないと、最初に最小の値を削除すると、インデックスがオフになります。

于 2013-09-25T20:26:05.617 に答える
0

これにより、InvalidOperationException を発生させることなくジョブが実行されます。

string searchString = "Hmmm_Joke.pdf";
foreach (string item in list.ToArray())
{
    if (item.IndexOf(searchString, StringComparison.OrdinalIgnoreCase) >= 0)
    {
        list.Remove(item);
    }
}

また、大文字と小文字を区別しないようにしました。

あなたの仕事を頑張ってください。

于 2013-09-25T20:29:29.717 に答える