如何将类转换为数组?

时间:2009-04-05 16:08:40

标签: c# .net asp.net

我正在寻找一些信息,我找到了这样的方法:

public partial class Customer {        
    private string customerIDField;

    private string companyNameField;

    private string contactNameField;

    private string contactTitleField;

    private string addressField;

    private string cityField;

    private string regionField;

    private string postalCodeField;

    private string countryField;

    private string phoneField;

    private string faxField;
    // Other properties
}

然后编码员像这样使用这个类。怎么样?

private static Model.Customer[] BuildCustomers(SqlDataReader reader)
{
    if (reader.HasRows)
    {
        List<Model.Customer> custs = new List<Model.Customer>();
        while (reader.Read())
        {
            Model.Customer cust = new Model.Customer();
            cust.CustomerID = reader["CustomerID"].ToString();
            cust.CompanyName = reader["CompanyName"].ToString();
            cust.ContactName = reader["ContactName"].ToString();
            custs.Add(cust);
        }
        return custs.ToArray();
    }
    return null;
}

我真的想了解这个编码器如何使用“Customer -----&gt; Model.Customer []”。有没有办法做到这一点?

4 个答案:

答案 0 :(得分:2)

您是否在询问如何将Customer对象转换为数组?

有几种方法可以做到这一点 - 您在第二段代码中展示的示例通过添加List构建Customers,然后将List转换为数组。当你不知道你有多少客户,你继续添加到列表并在末尾创建和数组并且数组的大小正确时,这很有效。

如果您只有一个customer对象,您还可以使用一个元素创建一个名为customers的数组,并像这样添加一个customer对象:

Model.Customer[] customers = new Model.Customer[1];
customers[0] = customer;

或更简短的方式:

Model.Customer[] customers = new Model.Customer[] {customer};

答案 1 :(得分:1)

您对该方法返回数组的方式感到困惑吗?

它只是使用List<T>.ToArray()。该列表一次建立一个客户,然后在最后调用ToArray()

答案 2 :(得分:1)

就像Jason所说,你只是从List&lt; Model.Customer&gt;中返回一组Model.Customers。可以像数组一样访问类,这就是使用索引器。

例如:

class Foo
{
     public string this [int index]
     {
          get { return new string; }
     }
}

然后使用它:

Foo foo = new Foo();
string s = foo[0];

显然你会想做些什么让Foo根据索引返回一些值,但这是完成它的基本方法。

答案 3 :(得分:0)

我不确定你想在这里做什么。

您想要一个客户数组吗?或者,您是否希望使用数组类型语法访问Customer Class中的属性?

通过代码示例(第二个)

代码生成客户列表

创建一个通过DataReader填充的单个客户(这反映了数据库数据,允许通过其列索引或名称进行访问)

新的cusomter被添加到客户列表中

最后将List转换为一个数组(作为一个List(Generic),它支持转换为Customer []而不需要转换)。

HTH 骨