首页 > c#如何初始化定长的List?

c#如何初始化定长的List?

初始化一个空的List

    public List<string> objectNames;
    objectNames = new List<string>();

我需要在这个List的一些特定的位置存放数据,但是如果是空数组会有IndexError
请问如何初始化一个定长的List?


方法一

直接初始化:

public List<string> ls = new List<string>(new string[initial_size]);

方法二

添加一个 helper class:

public static class Lists
{
    public static List<T> RepeatedDefault<T>(int count)
    {
        return Repeated(default(T), count);
    }

    public static List<T> Repeated<T>(T value, int count)
    {
        List<T> ret = new List<T>(count);
        ret.AddRange(Enumerable.Repeat(value, count));
        return ret;
    }
}

然后

public List<string> ls = Lists.RepeatedDefault<string>(initial_size);

参考


为什么不用数组


还不如初始化一个固定长度的数组:
var array = new int[10];


Dictionary<int, string>

【热门文章】
【热门文章】