1

そのため、G、GE、G=、または Z の文字で終わるツアー コードを削除するように依頼されました。唯一の悪い点は、この呼び出しを多くのページで使用していると思われることです。それが、データベースを変更できない理由です。そもそも電話するので、この1人のために特別にやりたい。私のコードは、私たちが持っているすべてのツアーコードでいっぱいになる arrayList を呼び出しています。上記の文字でツアーを削除する方法はありますか? これが私が仕事をしなければならないものです。

public void LoadTourCodes()
{
    ddlTourCode.Items.Clear();

    if (ddlTourCode.Visible)
    {
        ddlTourCode.Items.Add(new ListItem(" ", ""));

        ArrayList tourCodes;
        tourCodes = EblTipTours.FindTourCodes();

        foreach (string tourCode in tourCodes)
        {                   
            ddlTourCode.Items.Add(tourCode);
        }
    }
}
4

1 に答える 1

4

次のように、LINQ を使用して実行できます。

var toRemove = new []{"G", "GE", "G=", "Z"};
foreach (string tourCode in tourCodes.Where(code => !toRemove.Any(suffix => code.EndsWith(suffix)))) {
    ddlTourCode.Items.Add(tourCode);
}

レガシー システムであるために LINQ を使用できない場合は、次のようにコードを書き直すことができます。

string[] toRemove = new string[] {"G", "GE", "G=", "Z"};
foreach (string tourCode in tourCodes) {
    bool good = true;
    foreach (string suffix in toRemove) {
        if (tourCode.EndsWith(suffix)) {
            good = false;
            break;
        }
    }
    if (!good) continue;
    ddlTourCode.Items.Add(tourCode);
}
于 2013-04-24T17:49:32.210 に答える