Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在未知大小的字符串数组中循环的最佳方式是什么?_C#_Loops - Fatal编程技术网

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

C# 在未知大小的字符串数组中循环的最佳方式是什么?,c#,loops,C#,Loops,我想循环一个字符串数组 string elements=“item1、item2、item3” 循环并将该数组中的每个项放入各自的单独变量的最佳方法是什么?我还希望能够循环数组中项数未知的字符串数组。任何帮助都将不胜感激。当我使用的字符串中有三个以上的项时,下面的代码就会失败,比如说字符串中有4个或5个项 public void getString(string anyString) { foreach (var element in elements.Where(el

我想循环一个字符串数组 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.
}

我试试看,这就是你想做的吗

编辑: 添加了一个计数器以测试数组中的每个项是否都已处理

    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?";
    }
编辑(再次)

在我试图了解你想要做什么的过程中,我查看了你的个人资料,我发现你对这个问题有类似的回答,你也试着问了几次同样的问题。你需要退一步,先问自己一个问题。您正在编写
服务器端
客户端
代码

  • 服务器端
    :与您的示例类似的是创建网页的代码
  • 客户端
    :是发生在页面上的类似JavaScript的代码(在浏览器上-因此在客户端使用Client-Side ie一词)

您不能期望在页面(
客户端
)上传递对象的html字符串,然后使用它(
服务器端
)在
客户端
上再次使用它。我认为您可能应该更好地解释您试图对这些“项目”执行的操作字符串?对吗?

我会根据评论中的拔牙来回答这个问题,我仍然不能100%确定这是否是你想要的,但是你想要这样的东西吗

更改

  • 输入参数是一个数组,所以您可以实际迭代它
  • 如果语句正确对齐且未嵌套

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