当前上下文中不存在c#IndexOf

当前上下文中不存在c#IndexOf,c#,methods,indexof,C#,Methods,Indexof,我正在尝试使用下面的方法,但无法理解为什么这个IndexOf方法不起作用 foreach (string s in regKey.GetSubKeyNames()) { RegistryKey sub = Registry.LocalMachine.OpenSubKey(string.Format(@"{0}\{1}", _UninstallKey64Bit, s), false); if (sub.ValueCount >

我正在尝试使用下面的方法,但无法理解为什么这个IndexOf方法不起作用

foreach (string s in regKey.GetSubKeyNames())
        {
            RegistryKey sub = Registry.LocalMachine.OpenSubKey(string.Format(@"{0}\{1}", _UninstallKey64Bit, s), false);

            if (sub.ValueCount > 0)
            {
                values = sub.GetValueNames();

                if (IndexOf(values, "DisplayName")  != -1)
                {
                    string name = (sub.GetValue("DisplayName") != null) ? sub.GetValue("DisplayName").ToString() : string.Empty;

                    if (!string.IsNullOrEmpty(name) && (name.ToLower() == appName.ToLower()))
                        if (IndexOf(values, "UninstallString") != -1)
                        {
                            uninstallValue = (sub.GetValue("UninstallString") != null) ? sub.GetValue("UninstallString").ToString() : string.Empty;
                            break;
                        }
                }
            }
        }
谁能帮我一下吗?

返回一个字符串数组,因此您可能正在查找:

if (values.Contains("DisplayName"))
试一试

正确的语法是:

if (Array.IndexOf(values, "DisplayName")  != -1)
试着改变-

if (IndexOf(values, "UninstallString") != -1)


试试这个,而不仅仅是索引

Array.IndexOf(values, "DisplayName")

抱歉,忘了添加它,它返回了一个错误:“名称'IndexOf'在当前上下文中不存在”值是一个字符串数组(string[]values;),IndexOf不是一个选项。是的,看起来应该是values.IndexOf()。values是一个字符串数组,IndexOf不是一个选项。然后我们可以使用array类的静态方法。请看更新后的帖子。太棒了,这正是我想要的,谢谢AndreiMy投票支持linq选项-更干净、更容易阅读。
if (Array.IndexOf(values, "UninstallString") != -1)
Array.IndexOf(values, "DisplayName")