에서 LINQ 단일 치환을 만드시겠습니까? 물론이 코드가 C#을
var list = 1.To(5);
:
public static class Helper
{
public static List<int> To(this int start, int stop)
{
List<int> list = new List<int>();
for (int i = start; i <= stop; i++) {
list.Add(i);
}
return list;
}
}
이처럼 사용 : 당신이 그 목록을 많이해야하는 경우
이와 같은 범용 확장 메서드를 정의하는 경우'List '이 아닌'IEnumerable '을 반환하지 않는 것이 어떻습니까? 범위를위한 설립 된 대회는 거의 모든 곳에서 게으름을 피우고 있습니다. –
List을 요청했기 때문에 IEnumerable 이 아닙니다. 나는이 질문에 대해 이것을 어떻게 단축 할 수 있는지에 대한 일반적인 견본으로 썼다. Ruby 동료에게 보여주기 위해 ToList 호출을 피하기를 원할 것입니다.) 이제는이 메소드가 범용 메소드 일 가치가 있다고 생각한다면 계속 진행하여 IEnumerable 을 반환하도록하십시오. 이것은 수동으로 목록을 생성하는 대신 iterator 블록으로 만들 수도 있습니다. –
OregonGhost
@Pavel : 그게 정확히'Enumerable.Range'가하는 것이기 때문입니다. –