我正在寻找一些信息,我找到了这样的方法:
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 []”。有没有办法做到这一点?
答案 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 骨