每當我編程C#時,我都會很好地使用Linq,因爲我喜歡它,它讓我像一個功能程序員一樣思考,我經常發現比命令式編程更容易。一項公約我創建對象的隨機列表時經常使用如下:如何創建一個一般創建一系列對象的方法?
var animals= Enumerable.Range(0, 100).Select(n => new Animal()).ToList();
我知道這是(可能慢)語法糖for循環,增加了項目到列表。這對我來說是完全可以接受的,因爲它不會冒犯我的靈敏度。這裏是我不喜歡的:
var animals = Enumerable.Range(0,100)。 選擇(n =>新動物())。 ToList();
我想做一個幫手Func這樣做,甚至更少的打字。理想情況下,我想鍵入:
var animals = NewRange(0, 100, Animal);
但是我越來越掛斷瞭如何做到這一點(如果它甚至可能)。我可以使用反射和各種其他粗糙的東西(yuck!),但沒有這些,我無法弄清楚。這是我得到的最接近的:
public Func<int, Type, List<object>> NewRange = (n, t) => Enumerable.Range(0, n).Select(o => new t()).ToList();
但是,這不會編譯(顯而易見的原因)。有人對我如何創建自己的便捷功能有了一些建議?
其實他想要一個'List <>'。 – NetMage
好的。更新以替代返回列表。 –
你的風格與我的非常不同:)。我建議設置'List'容量,因爲你知道它的開始。 – NetMage