循环遍历未知大小的字符串数组的最佳方法是什么?

时间:2015-07-02 13:28:47

标签: c# loops

我想循环一个字符串数组让我们说     string elements =" item1,item2,item3&#34 ;;

循环并将该数组中的每个项目放入自己的单独变量的最佳方法是什么?我还希望能够循环一个数组中项目数量未知的字符串数组。任何帮助,将不胜感激。我使用的字符串超过三个项目后,我的代码就会失败,可以说字符串中包含4个或5个项目。

public void getString(string anyString)
{ 
            foreach (var element in elements.Where(el => !string.IsNullOrEmpty(el)))
            {

                if (element == "item1")
                {
                    string gotTheElement = element;
                    myOtherMethod(gotTheElement);
                    if (element == "item2")
                    {
                        string gotTheElement2 = element;
                        myOtherMethod(gotTheElement);
                    }
                    if (element == "item3")
                    {
                        //do something
                    }
                }
            }
}


public void myOtherMethod(string anyString)
{
 //do whatever with the string you got.
}

2 个答案:

答案 0 :(得分:0)

我会抓住它,这就是你想做的事情吗?

修改 添加了一个计数器来测试是否处理了数组中的每个项目

    public string GetString(string anyString)
    {
        var elements = anyString.Split(',');
        var count = 0;
        foreach (var element in elements.Where(element => element.Contains("item"))) {
            switch (element)
            {
                case "item1": //do something
                    count++;
                    break;
                case "item2": //something else
                    count++;
                    break;
                default:
                    return "unknow element";

            }
        }
        return elements.Count() != count ? "not all elements was handled? or unknown elements with not 'item' string got passed" : "done?";
    }

编辑(再次)

在努力尝试理解你想要做什么的时候,我去了你的个人资料,我看到你对这个问题有类似的回答,你试着问了几次相同的问题。你需要退后一步,先问自己一个问题。您是在撰写server-side还是client-side代码。

  • Server Side :就像您的示例是创建网页的代码
  • Client Side :代码就像JavaScript一样发生在页面上(在浏览器上 - 因此客户端一词,即客户端;

您不能指望在您的网页上传递html字符串对象(client),然后使用它(server side)在client上再次对其进行操作。我想你应该更好地解释一下你正在尝试用这些" item"字符串?对?

答案 1 :(得分:0)

我会在评论中试图回答这个问题,而且我仍然不能100%确定这是否是你所追求的,但是你是在追求这样的事情吗?

<强>更改

  1. 输入参数是一个数组,因此您可以实际迭代它
  2. 如果语句正确对齐而不是嵌套
  3.     public void getString(string[] anyString)
        { 
            foreach (var element in anyString.Where(el => !string.IsNullOrEmpty(el)))
            {
                if (element == "item1")
                {
                    myOtherMethod(element);
                }
                else if (element == "item2")
                {
                    myOtherMethod(element);
                }
                else if (element == "item3")
                {
                    myOtherMethod(element);
                }
            }
        }
    
    
        public void myOtherMethod(string anyString)
        {
             //do whatever with the string you got.
        }