문제

정수, 이중 또는 문자열 인 데이터 열이 포함 된 텍스트 파일이 있습니다. 각 데이터 행을 내 레코드 클래스로 읽고 싶습니다. 열 데이터 유형을 미리 알고 있으므로 아래 코드와 같은 텍스트 파일 행을 구문 분석하고 있습니다 (입력 했으므로 오류가 있다고 불평하지 마십시오). 모든 열을 나열하지 않았으므로 스위치 명령문에는 74 건의 사례가 있습니다. 이것이 가장 좋은 방법인지 모르겠습니다. 이것을하는 더 좋은 방법은 무엇입니까? 또한 가능한 빨리 빠르야합니다.

List<record> records = new List<record>();

string[] split = textRow.Split(new string { "," }, StringSplitOptions.None);
record = new Record();
for (int i=0;i<split.Length;i++)
{      
   switch (i)
   {
      case 0: 
         record.ID = Convert.ToInt32(split[0]);
         break;
      case 1:
         record.Name = split[1];
         break;
      case 2:
         record.Rate = Convert.ToDouble(split[2]);
         break;
      case 3:
         record.Price = Convert.ToDouble(split[3]);
         break;
      case 4:
         record.Rank = Convert.ToInt32(split[4]);
         break;

   }
}

records.Add(record);
도움이 되었습니까?

해결책

당신은 정말로 그것을 필요로합니까? switch? 는 어때:

string[] split = textRow.Split(new string { "," }, StringSplitOptions.None);
record = new Record();
record.ID = Convert.ToInt32(split[0]);
record.Name = split[1];
record.Rate = Convert.ToDouble(split[2]);
record.Price = Convert.ToDouble(split[3]);
record.Rank = Convert.ToInt32(split[4]);
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top