如何将冗长类型定义为自定义类型?

时间:2013-06-07 18:22:26

标签: c# arrays custom-type

我认为我只是使用了对我想要的错误描述,这就是为什么我找不到答案,但基本上我想做以下事情:

// Go from this
List<string>[] myvar = new List<string>()[5];
myvar[4].Add("meow");

// To this
LString myvar = new LString();
myvar.Add("meow");

我最初尝试过做一个类public class LString : List<string>()[],但这不是真正有效的语法,所以我真的不知道从那里去哪里。

2 个答案:

答案 0 :(得分:2)

要从List<string>派生类,请使用以下语法:

public class LString : List<string>
{
}

无法从数组中进一步派生类。所以你必须满意:

LString[] myvar = new LString[5];

修改

根据反馈,你最好做这样的事情来包含你的清单:

public class LString
{
  private List<string>[] _lists = new List<string>[5];

  public void Add(int index, string value)
  {
    if (index < 0 || index > 4)
      throw new ArgumentOutOfRangeException("index");
    _lists[index].Add(value);
  }
}

答案 1 :(得分:2)

这是一个封装的方法:

public class LString
{
    List<string>[] _strListArray;

    public LString(int size)
    {
        _strListArray = new List<string>[size];
    }

    public void Add(int index, string str)
    {
        _strListArray[index].Add(str);
    }

    public void Remove(int index, string str)
    {
        _strListArray[index].Remove(str);
    }

    // insert more code for list manipulation
}

这可能不是最干净的代码,但它不会从List<T>继承。