在c#中添加数组之前过滤项目

时间:2013-09-02 09:10:02

标签: c# arrays loops filter

我只是在一个小脚本任务被深深抛入后才能掌握一些c#。

我正在尝试修改一些在网页上构建下拉框的代码,以便它只包含四个项目的列表,我不确定实现此目的所需的语法,但希望大家可以帮助

        using (CoreBusinessLayerProxy proxy = CoreBusinessLayerProxy.CreateCoreBusinessLayerProxy(BusinessLayerExceptionHandler))
        {
            eventTypesTable = proxy.GetEventTypesTable();
        }
        eventTypes.Items.Add(new ListItem(Resources.CoreWebContent.WEBCODE_VB0_201, "All events"));
        EventTypes.Add("All events", 0);
        foreach (DataRow r in eventTypesTable.Rows)
        {
            eventTypes.Items.Add(r["Name"].ToString());
            try
            {
                EventTypes.Add(r["Name"].ToString(), Int32.Parse(r["EventType"].ToString()));
            }
            catch { }
        }

我正在尝试修改上述内容,以便不添加DataRow中的所有eventTypeTable.Rows,而只添加一组四个硬编码值,我怀疑我需要通过在foreach期间我却无法为我的生活缠绕在我应该在循环中这样或何时做的事情。

(处理未注释代码的乐趣)

谢谢!

1 个答案:

答案 0 :(得分:0)

这是基于“名称”字段执行此操作的基本方法。如果Name不是“allow1”,“allow2”,“allow3”或“allow4”之一,那么它将continue。这将转移到foreach循环中的下一次迭代,而不执行当前循环的其余语句块。

    foreach (DataRow r in eventTypesTable.Rows)
    {
        string name = r["Name"].ToString();         
        if ( name != "allow1" && name != "allow2" && name != "allow3" && name != "allow4" )
            continue;

        eventTypes.Items.Add(r["Name"].ToString());
        try
        {
            EventTypes.Add(r["Name"].ToString(), Int32.Parse(r["EventType"].ToString()));
        }
        catch { }
    }