Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.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# - Fatal编程技术网

C# 关于列表的一般问题

C# 关于列表的一般问题,c#,C#,嗨 我有一个关于C语言中列表的一般性问题。 这是我的密码: public List<string> Example() { ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\WMI", "SELECT * FROM MSStorageDriver_FailurePredictStatus"); List<string> output =

嗨 我有一个关于C语言中列表的一般性问题。 这是我的密码:

public List<string> Example()
    {
        ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\WMI", "SELECT * FROM MSStorageDriver_FailurePredictStatus");

        List<string> output = new List<string>();

        foreach (ManagementObject queryObj in searcher.Get())
        {
            output.Add(System.Convert.ToString(queryObj["InstanceName"]));
        }

        return output;
    }
方法“output”不重载1个参数

我希望你能给我解释一下,对不起我的问题,我是一个绝对的初学者

最好的祝愿

试试:

Debug.WriteLineExample[1]

编辑: 如果要查找第一个元素,则应使用0,而不是其他人指出的1。

应使用:

Example()[0];

方法示例返回一个列表,您可以直接通过索引访问它的元素,类似于mylist[0]。第一个元素的索引是0,而不是C中的1。

Bolu的答案很好,只是它应该是0,而不是1-C列表,数组是基于零的。

我认为您得到的错误是:方法“示例”没有重载取1个参数而方法“输出”没有重载取1个参数

它表示方法示例不准备接受1个参数

要做到这一点:

Debug.WriteLine(Example()[0]);

因为你说的是第一个输出,所以这里的索引是零。

输出是一个列表。由于您已经将示例编码为一个返回列表的方法,所以要访问它,您需要使用带空括号的方法语法来调用它。返回值是列表的一个实例。如果在键入示例后达到小数点,您将在intellisense中看到此对象的成员。其中一个将显示为方括号,如下[]。这是您需要使用的成员,用于访问列表中的任何内容。您将提供的值是以零为基础的,即列表中第一项的值从零开始,然后从零开始增加。因此,要访问列表中的第一项,您可以编写:

Debug.WriteLineExample[1]

使用方括号,而不是圆括号。您仍然需要示例中的括号,因为它是一个方法。。。如果将其重新编码为属性:

public List<string> Example    
{     
   get 
   {   
      ManagementObjectSearcher searcher = 
        new ManagementObjectSearcher("root\\WMI", 
          "SELECT * FROM MSStorageDriver_FailurePredictStatus");        
      List<string> output = new List<string>();        
      foreach (ManagementObject queryObj in searcher.Get())
          output.Add(System.Convert.ToString(queryObj["InstanceName"]));  
      return output;
   }            
}
那么你就不需要那些括号了,可以直接写了

Debug.WriteLineExample[1]

这个怎么样

using System.Linq;

public List<string> Example()
{
    ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\WMI", "SELECT * FROM MSStorageDriver_FailurePredictStatus");

    return searcher.Get().ToList();
}

public void Test()
{
    var myList = Example();
    var element = myList[0];
}

1也起作用,因为列表中有多个成员我知道列表以0开头,但谢谢!
using System.Linq;

public List<string> Example()
{
    ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\WMI", "SELECT * FROM MSStorageDriver_FailurePredictStatus");

    return searcher.Get().ToList();
}

public void Test()
{
    var myList = Example();
    var element = myList[0];
}