C# 在c中定义泛型对象列表
我正试图找到最干净的方法来构造一个包含其他对象列表以及其他一些条目(如c中的Struct和int)的objetC# 在c中定义泛型对象列表,c#,struct,C#,Struct,我正试图找到最干净的方法来构造一个包含其他对象列表以及其他一些条目(如c中的Struct和int)的objet Class Object0 { int Counter0 Object[] An Array of Object1 } Class Object { String Header1 String[] Detail } =================================== 这有什么好处吗 namespace Ob
Class Object0
{
int Counter0
Object[] An Array of Object1
}
Class Object
{
String Header1
String[] Detail
}
===================================
这有什么好处吗
namespace ObjectCreation
{
public class Object
{
public Object()
{
this.Records = new List<string>();
}
public void AddARecord(string record)
{
Records.Add(record);
}
private string _Header;
private List<string> Records;
public string Header { get { return _Header; } set { _Header = value; } }
}
public class ObjectList
{
int _Counter;
private List<Object> _objectlist;
public ObjectList()
{
_objectlist = new List<Object>();
_Counter = 0;
}
public void AddObject(Object o)
{
_objectlist.Add(o);
_Counter++;
}
}
}
要创建包含更多对象以及整数和结构的对象,应使用System.Collections.Generic.List;。这是一个基于索引的列表,您可以通过对象在列表中的位置来访问对象,并且它能够使用Additem方法存储任何变量。您看过ArrayList吗?list objs=new list;若要创建列表,为什么不完全绕过泛型,只使用ArrayList呢?每个项的类型都已经是Object,可以避免泛型的开销。我只是更喜欢使用泛型类,并且倾向于避免ArrayList。我有过一些在edge case.NET平台上开发的经验,列表是可用的,而ArrayList不是。这可能只是因为我做错了什么。我不确定edge case.NET平台是什么意思,但ArrayList从.NET 1.1开始就存在了,而泛型是在.NET 2.0中引入的,所以如果有什么问题的话,我认为System.Collections命名空间将比System.Collections.Generic有更广泛的支持。出现的一个例外是Silverlight。我只是通常更喜欢为工作/情况选择合适的工具。