2014-10-24 1 views
0

테이블의 행을 계산해야합니다. 그 카운트를 바탕으로 팀을 지정해야합니다. 오류를 보여주는 아래의 코드를 사용하는 동안 암시 적으로 'int'유형을 'string []'로 변환 할 수 없습니다.암시 적으로 'int'유형을 'string []'로 변환 할 수 있습니까?

코드 :

protected void ddlCircle_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     ArrayList teamList = new ArrayList(); 

     ShadingAnalysisDataSetTableAdapters.tbl_CadEngineersTeamTableAdapter cd; 
     cd = new ShadingAnalysisDataSetTableAdapters.tbl_CadEngineersTeamTableAdapter(); 
     DataTable dt = new DataTable(); 
     dt = cd.GetAvailableData(ddlCircle.SelectedValue); 

     int x; 

     x = dt.Rows.Count; 

     String[] a; 


     for (int i = 1; i <= x; i++) 
     { 
      a = teamList.Add(String.Format("Team{0}", i)); // error popup here 
     } 
    } 
+3

다른 점을 제외하고 왜 여전히 'ArrayList'를 사용하고 있습니까? –

+3

'a'는 문자열 배열입니다. 'ArrayList.Add'는'int'를 리턴합니다. 문자열 배열에 정수를 대입 할 수 없습니다. 나는 이것을 'a [i]'라고 생각한다. 그리고 더 이상'ArrayList'를 사용하지 마십시오. 그것은 C#에 Generics가없는 옛날에 속합니다. 'List '을 대신 사용하십시오. –

+2

왜 '*'에 할당하려고합니까? 달성하기 위해 무엇을 기대합니까? –

답변

6

Add() 메소드의 반환 값 유형이 int, 당신은 string[] 배열에 할당된다. 내가 당신이라면, 이런 식으로 뭔가에 TeamList (팀 목록)을 바꿀 것

a = teamList.ToArray(typeof(string)) as string[]; 
0

: 당신은 [], 당신이 코드를 사용할 수 있습니다 문자열의 ArrayList를 변환 할 경우에도

for (int i = 1; i <= x; i++) 
    { 
     teamList.Add(String.Format("Team{0}", i)); 
    } 

님의 코드를 변경 ...

var teamList = new List<string>(); 

후이 목록이 할 채우기에 관해서 :

for (int i = 1; i <= x; i++) 
    { 
     teamList.Add(string.Format("Team{0}",i)); 
    } 

a = teamList.ToArray() 

을 한 다음 문자열 배열은 배열 형식에 TeamList (팀 목록) 될 것입니다 :

그런 다음 루프가 완료되면 당신은 단지 호출 할 수 있습니다.

배열에 배치해야 할 특별한 이유가 있으며 목록을 전달할 수 없습니까?

관련 문제