2011-04-20 2 views
5

가장 효율적인 전형적인 솔루션입니다 :DateTime.Now.AddDays (0..7) 목록을 동적으로 가져올 수있는 방법은 무엇입니까? 내가 생각할 수

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

이 내가 원하는 결과 배열, 나에게 일곱 (7) 날짜를 반환합니다. I 생각해 보면 루비는 점을 지정함으로써 간단하게 이런 일을 할 수 있지만 기억이 안납니다.

그러나 더 효율적인 방법이 있습니까? 또는 linq (Aggregate 메서드를 통해 가능)를 사용하여 구현할 수있는 방법이 있습니까? 그렇다면 가장 효율적인 솔루션이 아닌데도 궁금해 할 것입니다.

이상적으로 필요한 "시간"에 대해 객체 인스턴스를 다시 선언 할 필요가 없으며 DateTime.Now을 한 번만 지정하고 배열/목록의 항목 수를 단 한 번만 지정할 수 있습니다 .

감사

답변

9

는 데이터의 시퀀스를 생성에 올 때 나는 매우 편리 Enumerable.Range를 사용합니다 :

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

지금 그 덕분에 섹시. 나는 너의 것을 받아들이 기 전에 내가 얻은 다른 대답을 볼 것이다. 그러나 나는 그것을 정말로 좋아한다. – GONeale

+0

@GONeale : 나는 이것을 받아 들일 수 있다고 생각합니다. – Kangkan

+0

이것은 어떻게 비교합니까, cpu가 루프 표준에 대해 현명합니까? – GONeale

관련 문제