在未知大小的字符串数组中循环的最佳方式是什么

本文关键字:循环 最佳 方式 是什么 字符串 未知 数组 | 更新日期: 2023-09-27 18:00:46

我想循环遍历一个字符串数组,比如说string elements="item1,item2,item3";

循环并将数组中的每个项放入它们自己的单独变量的最佳方式是什么?我还希望能够循环一个数组中项数未知的字符串数组。如有任何帮助,我们将不胜感激。一旦我使用的字符串中有三个以上的项目,比如说字符串中有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.
}

在未知大小的字符串数组中循环的最佳方式是什么

我会在评论中尝试回答这个问题,我仍然不能100%确定这是否是你想要的,但你想要这样的东西吗?

更改

  1. 输入参数是一个数组,因此您实际上可以对其进行迭代
  2. 如果语句正确对齐且未嵌套

    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.
    }

我会尝试一下,这是你想做的吗?

编辑:添加了一个计数器来测试阵列中的每个项目是否都被处理

    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),然后在client上使用它(server side)再次对其执行操作。我认为你应该更好地解释你试图用这些"项目"字符串做什么?正确的