如何避免重复这行代码?

时间:2017-01-08 10:02:51

标签: c# list

我想制作一些将多维列表填充到某个比例的内容,默认值为T

for (int x = 0; x < MapSize [0]; x++) {
    List<List<T>> Map_YZ = new List<List<T>> ();
    Map.Add (Map_YZ);

    for (int y = 0; y < MapSize [1]; y++) {
        List<T> Map_Z = new List<T> ();
        Map_YZ.Add (Map_Z);

        for (int z = 0; z < MapSize [2]; z++) {
            T PlainItem = default(T);
            Map_Z.Add (PlainItem);
        }
    }
}

1 个答案:

答案 0 :(得分:1)

您只需填充List的{​​{1}}值为default,对吧?

为具有预定义值的一个列表创建帮助方法T

Fill

并将其用于所有3个级别:

public static List<T> Fill<T>(Func<T> getValue, int range )
{
    return Enumerable.Range(0, range).Select(x =>getValue()).ToList();
}

你可以将这3行写成一行,但它会使整个代码不可读:)

我已经改变了我的解决方案,因为来自S.Serp的评论,第一个解决方案非常危险。