1

所以我被要求删除以字母 G、GE、G= 或 Z结尾的旅游代码。唯一不好的是我相信我们将这个调用用于很多页面,这就是我无法更改数据库的原因首先打电话,所以我想专门为这个人做这个。我的代码正在调用一个数组列表,其中填充了我们拥有的所有旅游代码。有什么办法可以删除带有上述字母的旅行。这是我要处理的。

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 回答