如何实现Collection对象

时间:2011-12-07 19:34:43

标签: c# .net collections

如何实现我班级的集合对象?

类似于MatchCollectionCookieCollection

例如:

我有以下课程:

public class theParserClass 
{
    public theParserClass(string baa)
    { 
      //..
    }

    public string pro1 
   {
     get { /* etc */ } 
   }
}

以及我想要实现的集合:

 public class theParserClassResultCollection
    {
       private ParserResultCollection result; 
       public theParserClassResultCollection(string[] baa)
       { 

         foreach(string foo in baa)
         {
           var data = new theParserClass(foo);
           result.Add(data);
         }
       }

       public ParserResultCollection() 
       {
        return result;            
       }

    }

我希望这很清楚。提前致谢

3 个答案:

答案 0 :(得分:1)

您可以像这样使用ObservableCollection:

public ObservableCollection<ParserClass> GetCollection(string[] baa)
{
  var result = new ObservableCollection<ParserClass>();
  foreach(string foo in baa)
  {
    var data = new ParserClass(foo);
    result.Add(data);
  }
  return result;
}

public class ParserClass 
{
  public ParserClass (string baa)
  { 
    //..
  }

  public string pro1 
  {
    get { /* etc */ } 
  }
}

msdn:http://msdn.microsoft.com/en-us/library/ms668604.aspx

希望这会有所帮助

答案 1 :(得分:0)

首先,您在类ParserResultCollection中声明似乎是theParserResultCollection的构造函数。真的不知道那是什么意思。

您可以使用的一般想法是在现有集合上创建一个包装类(通过组合继承),并使用内部集合对象提供所需的方法。像:

public class ParserResultCollection
{
    private List<ParserClass> collection;

    public ParserResultCollection(string[] param)
    {
        collection = new List<ParserClass>(param);            
    }

    public void Add(ParserClass item)
    {
        collection.Add(item);
    }

    // whatever else you need.
}

当然,如果您不需要任何与现有集合相关的其他特殊功能,请改用它们。

然后删除“the”,只需ParserResultCollection。它更干净。

答案 2 :(得分:0)

你可以试试这个:

  public class Collection<T> : IList<T>, 
        ICollection<T>, IEnumerable<T>, IList, ICollection, IEnumerable

http://msdn.microsoft.com/en-us/library/ms132397.aspx