2011-12-07 88 views
0

如何实现我的类的集合对象?如何实现Collection对象

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;    
     } 

    } 

我希望这是明确的。在此先感谢

+0

“System.Collections.Generic.List”有什么问题?你的目的不明确。 – Jon

+0

只需编写一个带字符串[]的小帮助方法,并返回一个列表,例如'List ',其中Foo是解析字符串的结果。哪一个不会是theParserClass,它应该是一个将字符串转换为Foo的内部帮助器类。 –

回答

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

希望这有助于

+0

不是这样的......我需要'创建'一个类型为MatchCollection,以保存n类的结果x。我尝试使用列表,但类型应该是'someCollection' –

+0

我还是不明白!你想要那样的东西?公共类ParserClassCollection:ObservableCollection {...}或类似的东西? public class ParserClassCollection:ObservableCollection > {...} – punker76

0

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

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

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。它更干净。