自定义 Collection/List 存储自定义对象
Custom Collection/List To Store Custom Objects
我有一个客户对象class:
public class customerObject
{
private string _address1;
private string _address2;
private string _address3;
private string _category;
private string _country;
private string _county;
private string _custcode;
private string _fullname;
private string _int_rep_hou;
private string _int_rep_key;
private double _lat;
private double _lng;
private string _postcode;
private string _rep_code;
private string _telephone;
public customerObject()
{
}
public string Address1
{
get { return _address1; }
set { _address1 = value; }
}
public string Address2
{
get
{
return _address2;
}
set { _address2 = value; }
}
public string Address3 { get { return _address3; } set { _address3 = value; } }
public string Category
{
get { return _category; }
set { _category = value; }
}
public string Country { get { return _country; } set { _country = value; } }
public string County { get { return _county; } set { _county = value; } }
public string Custcode
{
get { return _custcode; }
set { _custcode = value; }
}
public string Fullname
{
get { return _fullname; }
set { _fullname = value; }
}
public string Int_rep_hou
{
get { return _int_rep_hou; }
set { _int_rep_hou = value; }
}
public string Int_rep_key
{
get { return _int_rep_key; }
set { _int_rep_key = value; }
}
public double Lat { get { return _lat; } set { _lat = value; } }
public double Lng { get { return _lng; } set { _lng = value; } }
public string Postcode { get { return _postcode; } set { _postcode = value; } }
public string Rep_code
{
get { return _rep_code; }
set { Rep_code = value; }
}
public string Telephone { get { return _telephone; } set { _telephone = value; }
}
}
我有一个 CustomCollections class
public class CustomerCollection
{
public List<customerObject> Customers { get; set; }
}
我循环遍历 dt 行并转换为客户对象的方法
public List<Valueobjects.CustomerCollection> dolist(DataTable temptablename)
{
//Create Collection Object
Valueobjects.CustomerCollection Collection = new Valueobjects.CustomerCollection();
foreach (DataRow row in temptablename.Rows)
{
//Create Customer Object
Valueobjects.customerObject Customer = new Valueobjects.customerObject();
//set values of customer object
Customer.Rep_code = "";
Customer.Int_rep_key = "";
Customer.Int_rep_hou = "";
Customer.Fullname = row["Fullname"].ToString().Trim();
Customer.Custcode = row["Custcode"].ToString().Trim();
Customer.Category = row["Category"].ToString().Trim();
Customer.Address1 = row["Address1"].ToString().Trim();
Customer.Address2 = row["Address2"].ToString().Trim();
Customer.Address3 = row["Address3"].ToString().Trim();
Customer.Postcode = row["Postcode"].ToString().Trim();
Customer.Country = row["Country"].ToString().Trim();
Customer.Telephone = row["Telephone"].ToString().Trim();
Customer.Lat = Convert.ToDouble(row["Lat"]);
Customer.Lng = Convert.ToDouble(row["Lng"]);
Customer.County = row["County"].ToString().Trim();
//add to the collection (list)
Collection.Customers.Add(Customer);
}
temptablename = null;
return Collection;
}
但是,当我创建一个新的 Customer 对象和一个新的 CustomerCollection 对象时,我在将客户添加到集合列表时遇到错误。
错误:
Error 32 Cannot implicitly convert type
'Classes.Valueobjects.CustomerCollection' to
'System.Collections.Generic.List'
您的方法是 returning List<CustomerCollection>
:
public List<Valueobjects.CustomerCollection> dolist(DataTable temptablename)
{
//...
}
但是代码试图 return a CustomerCollection
:
return Collection;
正如错误所说,这两种类型是不同的。
如果 CustomerCollection
已经是 collection 个客户,那么 List<Valueobjects.CustomerCollection>
在语义上是什么? collection 个 collection 个?看起来你是 over-pluralizing 你的 objects :)
这里有两种方法。来自方法的 return 或 CustomerCollection
:
public CustomerCollection dolist(DataTable temptablename)
{
//...
}
或者如果您想使用通用列表作为 collection 容器,请使用 List<Customer>
:
public List<Customer> dolist(DataTable temptablename)
{
//...
var Collection = new List<Customer>();
//...
Collection.Add(Customer);
//...
return Collection;
}
旁注:您可能希望遵守 C# 变量命名约定。从 Stack Overflow 上突出显示的代码可以看出,您的变量名很容易被误认为 classes/types,这会在支持代码时造成混淆。
Return 一个 CustomerCollection
而不是一个 List<Valueobjects.CustomerCollection>
:
public Valueobjects.CustomerCollection Dolist(DataTable temptablename)
{
// ...
您的对象有一个列表,它不是列表。
MSDN:Inheritance
我有一个客户对象class:
public class customerObject
{
private string _address1;
private string _address2;
private string _address3;
private string _category;
private string _country;
private string _county;
private string _custcode;
private string _fullname;
private string _int_rep_hou;
private string _int_rep_key;
private double _lat;
private double _lng;
private string _postcode;
private string _rep_code;
private string _telephone;
public customerObject()
{
}
public string Address1
{
get { return _address1; }
set { _address1 = value; }
}
public string Address2
{
get
{
return _address2;
}
set { _address2 = value; }
}
public string Address3 { get { return _address3; } set { _address3 = value; } }
public string Category
{
get { return _category; }
set { _category = value; }
}
public string Country { get { return _country; } set { _country = value; } }
public string County { get { return _county; } set { _county = value; } }
public string Custcode
{
get { return _custcode; }
set { _custcode = value; }
}
public string Fullname
{
get { return _fullname; }
set { _fullname = value; }
}
public string Int_rep_hou
{
get { return _int_rep_hou; }
set { _int_rep_hou = value; }
}
public string Int_rep_key
{
get { return _int_rep_key; }
set { _int_rep_key = value; }
}
public double Lat { get { return _lat; } set { _lat = value; } }
public double Lng { get { return _lng; } set { _lng = value; } }
public string Postcode { get { return _postcode; } set { _postcode = value; } }
public string Rep_code
{
get { return _rep_code; }
set { Rep_code = value; }
}
public string Telephone { get { return _telephone; } set { _telephone = value; }
}
}
我有一个 CustomCollections class
public class CustomerCollection
{
public List<customerObject> Customers { get; set; }
}
我循环遍历 dt 行并转换为客户对象的方法
public List<Valueobjects.CustomerCollection> dolist(DataTable temptablename)
{
//Create Collection Object
Valueobjects.CustomerCollection Collection = new Valueobjects.CustomerCollection();
foreach (DataRow row in temptablename.Rows)
{
//Create Customer Object
Valueobjects.customerObject Customer = new Valueobjects.customerObject();
//set values of customer object
Customer.Rep_code = "";
Customer.Int_rep_key = "";
Customer.Int_rep_hou = "";
Customer.Fullname = row["Fullname"].ToString().Trim();
Customer.Custcode = row["Custcode"].ToString().Trim();
Customer.Category = row["Category"].ToString().Trim();
Customer.Address1 = row["Address1"].ToString().Trim();
Customer.Address2 = row["Address2"].ToString().Trim();
Customer.Address3 = row["Address3"].ToString().Trim();
Customer.Postcode = row["Postcode"].ToString().Trim();
Customer.Country = row["Country"].ToString().Trim();
Customer.Telephone = row["Telephone"].ToString().Trim();
Customer.Lat = Convert.ToDouble(row["Lat"]);
Customer.Lng = Convert.ToDouble(row["Lng"]);
Customer.County = row["County"].ToString().Trim();
//add to the collection (list)
Collection.Customers.Add(Customer);
}
temptablename = null;
return Collection;
}
但是,当我创建一个新的 Customer 对象和一个新的 CustomerCollection 对象时,我在将客户添加到集合列表时遇到错误。
错误:
Error 32 Cannot implicitly convert type 'Classes.Valueobjects.CustomerCollection' to 'System.Collections.Generic.List'
您的方法是 returning List<CustomerCollection>
:
public List<Valueobjects.CustomerCollection> dolist(DataTable temptablename)
{
//...
}
但是代码试图 return a CustomerCollection
:
return Collection;
正如错误所说,这两种类型是不同的。
如果 CustomerCollection
已经是 collection 个客户,那么 List<Valueobjects.CustomerCollection>
在语义上是什么? collection 个 collection 个?看起来你是 over-pluralizing 你的 objects :)
这里有两种方法。来自方法的 return 或 CustomerCollection
:
public CustomerCollection dolist(DataTable temptablename)
{
//...
}
或者如果您想使用通用列表作为 collection 容器,请使用 List<Customer>
:
public List<Customer> dolist(DataTable temptablename)
{
//...
var Collection = new List<Customer>();
//...
Collection.Add(Customer);
//...
return Collection;
}
旁注:您可能希望遵守 C# 变量命名约定。从 Stack Overflow 上突出显示的代码可以看出,您的变量名很容易被误认为 classes/types,这会在支持代码时造成混淆。
Return 一个 CustomerCollection
而不是一个 List<Valueobjects.CustomerCollection>
:
public Valueobjects.CustomerCollection Dolist(DataTable temptablename)
{
// ...
您的对象有一个列表,它不是列表。
MSDN:Inheritance