以编程方式填充对象集合

  1. 在“解决方案资源管理器”中右击 Web 窗体,然后单击“查看代码”。

  2. 在类中,添加名为 PopulateStockValuesArrayList() 的新公共作用域帮助器方法(不带返回值)。

``` vb
Public Sub PopulateStockValuesArrayList()

End Sub
```

``` csharp
public void PopulateStockValuesArrayList()
{
}
```
  1. 在 PopulateStockValuesArrayList() 方法中的现有代码之前,创建一个 if/else 条件块,检查是否存在名为 stockValues 的 Session 对象。
``` vb
If (Session("stockValues") Is Nothing) Then

Else

End If
```

``` csharp
if(Session["stockValues"] == null)
{
}
else
{
}
```
  1. 在 If 块中,实例化一个新的 ArrayList()。
``` vb
stockValues = New ArrayList
```

``` csharp
stockValues = new ArrayList();
```
  1. 接下来,使用 Stock 类的重载构造函数来创建并实例化三个 Stock 实例。

    Dim s1 As Stock = New Stock("AWRK", 1200, 28.47)
    Dim s2 As Stock = New Stock("CTSO", 800, 128.69)
    Dim s3 As Stock = New Stock("LTWR", 1800, 12.95)
    
    Stock s1 = new Stock("AWRK",1200,28.47);
    Stock s2 = new Stock("CTSO",800,128.69);
    Stock s3 = new Stock("LTWR",1800,12.95);
    
  2. 将这三个实例添加到 stockValues 中。

``` vb
stockValues.Add(s1)
stockValues.Add(s2)
stockValues.Add(s3)
```

``` csharp
stockValues.Add(s1);
stockValues.Add(s2);
stockValues.Add(s3);
```
  1. 将更新的 stockValues ArrayList 添加到会话中。

    Session("stockValues") = stockValues
    
    Session["stockValues"]=stockValues;
    
  2. 在 Else 块中,编写一行代码,将会话中保存的当前值赋给 stockValues ArrayList。

``` vb
stockValues = Ctype(Session("stockValues"), ArrayList)
```

``` csharp
stockValues = (ArrayList)Session["stockValues"];
```
  1. 最后,从 ConfigureCrystalReports() 方法中调用 PopulateStockValuesArrayList()。
它应该是在 ConfigureCrystalReports() 方法中执行的第一行代码。

``` vb
PopulateStockValuesArrayList()
```

``` csharp
PopulateStockValuesArrayList();
```