如果我在第二个中使用硬编码“ 4”,则它可以工作。但是我有一个动态string [] ProfileArray并想检查一下,是否View08ListBox1Item的值包含或不包含ProfileArray中的字符串之一。当我对string [] ProfileArray更改“ 4”时,为什么它不起作用?

全球:

static string[] ProfileArray;


case "Profile":
            foreach (ListItem View08ListBox1Item in View08ListBox1.Items)
            {
                if (View08ListBox1Item.Selected)
                {
                    if (!View08ListBox1Item.Value.ToString().Contains("4"))
                    {
                        //:do something
                    }
                    else
                    {
                        //:do something
                    }
                }
            }
            break;


这是我的第一个主意,但不起作用:

case "Profile":
            foreach (ListItem View08ListBox1Item in View08ListBox1.Items)
            {
                if (View08ListBox1Item.Selected)
                {
                    if (!View08ListBox1Item.Value.ToString().Contains(ProfileArray))
                    {
                        //:do something
                    }
                    else
                    {
                        //:do something
                    }
                }
            }
            break;

最佳答案

因为ProfileArray是数组而不是字符串。

ProfileArray.Any(x => x == View08ListBox1Item.Value.ToString())


我认为这可以工作。

在.NET 2.0中,您可以使用

Array.IndexOf(ProfileArray, View08ListBox1Item.Value.ToString()) == -1


http://msdn.microsoft.com/en-us/library/eha9t187%28v=vs.80%29.aspx

关于c# - 检查字符串是否包含在数组中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18235861/

10-12 02:56