2016-12-12 2 views
1

내가 좋아하는 뭔가를 갖고 싶어 :루프가없는 C# 클래스의 'NotNull'배열을 초기화하는 방법은 무엇입니까?

SomeClass[] classArray = new SomeClass[] {new SomeClass(), new SomeClass(), ...} 

이게 가능 :

class Main{ 
    SomeClass[] classArray = new SomeClass[199]; // Problem --> All elements are null 
    for(int i=0; i<classArray.Length; i++){ 
     classArray[i] = new SomeClass(); 
    } 
} 

class SomeClass{ 
    int x = 1; 
    public SomeClass(){} 
} 

하지만 루프없이 같은 일을하지 않고

?

+1

은''목록 사용을 고려 배열을 생성 모음을 열거하고 작성합니다. – SLaks

+0

목록을 사용하여 또한 고정 된 수의 요소를 추가하기 위해 루프를 사용해야하거나 잘못 되었습니까? – Pedro

답변

4

Enumerable.Range 방법은 소정의 범위에서의 정수의 집합을 생성한다.
Select 메서드는 모든 숫자에 대해 새 인스턴스를 만듭니다.
ToArray

var yourArray = Enumerable.Range(1, 199).Select(i => new SomeClass()).ToArray(); 
+2

@Jonesopolis,'Repeat'는'SomeClass'의 같은 인스턴스로 배열을 만듭니다. – Fabio

+0

고마워, 그게 내가 원하는거야. – Pedro

3

정말 불가능합니다. 루프를 발생시키는 몇 가지 작업을 수행 할 수 있지만 루프처럼 보이지는 않습니다. 예를 들어

var list = Enumerable.Range(0, 199) 
      .Select(_ => new SomeClass()) 
      .ToList();