2016-10-18 6 views
1

C# 문자열 배열 초기화 단순화. C#으로 아래의 코드를 최적화 할 수있는 방법이 있나요C# 문자열 배열 초기화 단순화

string[] createdBy = new string[totalRowCount]; 
for (long i = 0; i < totalRowCount; i++) 
{ 
    createdBy[i] = userName; 
} 

또한

int?[] defaultInd = new int?[totalRowCount]; 
     for (long i = 0; i < totalRowCount; i++) 
     { 
      if (i == 0) 
      { 
       defaultInd[i] = 1; 
      } 
      else 
      { 
       defaultInd[i] = 0; 
      } 
     } 
+0

바보가 되려고하지 않고, 아래 답변이 원하는 것을 제공하기 때문에 몇 가지 대체 조언을 제공하고 싶습니다. IMHO 당신은 똑똑한 구문 설탕에 대한 가독성을 위해 가야합니다. 단축 된 방법을 사용하면 눈에 띄게 성능이 향상 될 것입니다. 구문에 익숙하지 않다는 가정하에 문제가 발생하면 디버깅하기가 더 어려워집니다. 그냥 내 두 센트 ;-) – Equalsk

답변

3
string[] myIntArray = Enumerable.Repeat(userName, totalRowCount).ToArray(); 
1

두 예제에서 for 루프를 단순화하는 방법에는 여러 가지가 아니다, 당신은 Enumeration.Range을 사용하지 않는 한, 다른 답에 나와 있듯이. 반복 시퀀스를 구성하는

2

당신은 Enumerable.Range를 사용할 수 있습니다 그러나, 두 번째 예를 들어, 당신은 삼항 연산자를 사용할 수있는 최초의 람다 식 인덱스의 값을 사용하지 않는 방법

string[] createdBy = Enumerable.Range(0, totalRowCount) 
    .Select(i => userName) 
    .ToArray(); 
int?[] defaultInd = Enumerable.Range(0, totalRowCount) 
    .Select(i => i==0 ? (int?)1 : 0) 
    .ToArray(); 

i, 모든 요소가 동일한 문자열로 설정되어 있기 때문입니다.