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

时间:2011-09-14 21:20:15

标签: 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 > 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;
                        }
                }
            }
        }

任何人都可以帮我一把吗?

5 个答案:

答案 0 :(得分:5)

正确的语法是:

if (Array.IndexOf(values, "DisplayName")  != -1)

答案 1 :(得分:4)

GetValueNames()返回一个字符串数组,因此您可能正在寻找:

if (values.Contains("DisplayName"))

答案 2 :(得分:3)

尝试

 if (values.Any(v => v == "DisplayName")) )
 {
    ...
 }

答案 3 :(得分:1)

尝试更改 -

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

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

答案 4 :(得分:1)

尝试此而不仅仅是IndexOf。

Array.IndexOf(values, "DisplayName")