2011-04-20 8 views
5

en verimli ve tipik bir çözümdür:DateTime.Now.AddDays (0..7) 'in bir listesini dinamik olarak almanın bazı yolları nelerdir? Aklıma gelen

var dates = new DateTime[7]; 
for (int i = 0; i < 7; i++) 
    dates[i] = DateTime.Now.AddDays(i); 

İstediğim sonucudur bir dizi, beni yedi (7) tarihleri ​​dönecektir. Ben düşünürüm ruby, sadece noktaları belirterek bunu yapabilir, ama hatırlayamıyorum. Bununla birlikte, daha verimli bir yaklaşım var mıdır? Veya linq kullanarak bunu uygulamak için herhangi bir yolu var mı (muhtemelen Aggregate yöntemi ile?), Eğer görmek için merak ediyorum en verimli çözüm olmasa bile.

İdeal olarak, gereksinim duyduğunuz "zamanlar" miktarına ilişkin herhangi bir nesne örneğini yeniden bildirmeniz gerekmez ve yalnızca bir kez DateTime.Now belirtmenize izin verir ve dizi/listede yalnızca bir kez istediğiniz öğe sayısını belirtmenize izin verir .

Teşekkür

cevap

9

o verinin dizilerini üreten geldiğinde çok kullanışlı Enumerable.Range, kullanırsınız:

var now = DateTime.Now; 
var dates = Enumerable.Range(0, 7).Select(n => now.AddDays(n)).ToArray(); 
+1

Şimdi bu, teşekkürler seksi. Seninkini kabul etmeden önce aldığım diğer cevapları göreceğim; Ancak ben gerçekten bunu seviyorum. – GONeale

+0

@GONeale: Bunu kabul edebileceğinizi düşünüyorum. – Kangkan

+0

Bu nasıl karşılaştırılır, çevrim için standarda uygun mu? – GONeale

İlgili konular