首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于List的一般问题

关于List的一般问题
EN

Stack Overflow用户
提问于 2011-02-15 17:13:55
回答 6查看 332关注 0票数 1

嗨,我有一个关于C#中列表的一般问题。以下是我的代码:

代码语言:javascript
复制
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;
    }

现在我想给出第一个输入

代码语言:javascript
复制
public FormMain()
    {

        Debug.WriteLine(Example(1));


    }

方法“output”没有重载需要%1个参数

我希望你能给我解释一下,对于我的问题,我很抱歉,我还是个初学者。

谨致问候

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-02-15 17:20:36

好的输出是一个列表。由于您已经将Example编码为返回列表的方法,要访问它,您需要使用带空括号的方法语法来调用它。返回值是List<string>的一个实例。如果在键入Example()后点击小数点,您将在intellisense中看到此对象的成员。其中一个将显示为方括号,如此[]。这是您需要用来访问已放入列表中的任何内容的成员。您将提供的值是从零开始的,即它们从零开始(对于列表中的第一项),并从那里开始递增。因此,要访问列表中的第一项,您可以这样写:

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

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

代码语言:javascript
复制
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.WriteLine(Example[1]);

票数 1
EN

Stack Overflow用户

发布于 2011-02-15 17:17:18

尝试:

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

编辑:如果你正在寻找第一个元素,你应该使用,而不是其他人指出的1

票数 1
EN

Stack Overflow用户

发布于 2011-02-15 17:21:47

这个怎么样?

代码语言:javascript
复制
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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5001672

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档