使用C#在ArrayList中检索数据

时间:2014-06-26 19:23:05

标签: c# collections arraylist

我在使用C#从ArrayList集合中检索数据时遇到问题。我将一个类保存到ArrayList中。该代码用于保存数据,但我不知道如何编写代码来检索它。我认为 _serviceList [0] ._ displayName 将检索第一个项目,但它失败了。如何查看ArrayList中的所有项?

感谢。

class Service
{
  public string _displayName;
  public ServiceControllerStatus _status;

  public Service ()
  {
    _displayName = "";
    _status = ServiceControllerStatus.Stopped;
  }

  public Service (string displayName, ServiceControllerStatus status)
  {
    _displayName = displayName;
    _status = status;
  }
}

class Program
{
  public static ArrayList _serviceList = new ArrayList ();

  public Program ()
  {
    _serviceList = null;
  }

  static void Main (string [] args)
  {
    .
    .
    .

    _serviceList.Add (new Service (service.DisplayName, service.Status));
  }

  // The following code doesn't work.
  Console.WriteLine (_serviceList [0]._displayName);

1 个答案:

答案 0 :(得分:2)

如果您正在使用.Net framework 2.0或更高版本,请使用List<T>一个通用的,类型安全的List版本,只需更改line

public static ArrayList _serviceList = new ArrayList ();

public static List<Service> _serviceList = new List<Service>();

可以解决您的问题。

但是,如果你正在使用低于2.0的框架,那么你必须明确地将对象转换为Service,如:

Console.WriteLine (((Service)_serviceList [0])._displayName);

因为ArrayList将从object类型返回,而不是Service