2014-11-14 3 views
0

검색을 시도하고 다른 작업을 시도했지만 올바르게 작동하지 않는 것 같습니다.
클래스를 IEnumerable로 설정하고 형식을 가져옵니다.

 Model.SomeMDL mdl = new Model.SomeMDL(); 
     mdl.ID = 1; 
     mdl.Volume = 2; 
     mdl.Size = 2; 

     string myVar;    
     foreach (string item in mdl) 
     {     
      //myVar = item.GetType().ToString(); 
      //myVar = item.GetEnumerator().GetType().Name.ToString(); 
      //myVar = item.GetEnumerator().GetType().FullName.ToString(); 
      //myVar = item.GetEnumerator().GetType().DeclaringType.FullName.ToString(); //null ref 
      myVar= item.ToString(); //gets the value    
     } 

은 내가 무엇을 찾고하는 것이 아니라 값을 돌아 오게하는 방법입니다 :
그래서, 여기

namespace Model 
{ 
    [Serializable] 
    public class SomeMDL : IEnumerable<string> 
    { 
     public int ID { get; set; } 
     public int Volumne { get; set; } 
     public int Size { get; set; } 
    } 

    public IEnumerator<string> GetEnumerator() 
    { 
     yield return ID.ToString(); 
     yield return Volume.ToString(); 
     yield return Size.ToString(); 
    } 

    System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() 
    { 
     return this.GetEnumerator(); 
    } 
} 


는 그 다음 클래스를 호출 ... 기본이다 item.ToString()하지만 내가 읽고있는 공용 int 알고 있어야합니다. ID, 볼륨 또는 크기입니까?
유형 (ID, 볼륨 또는 크기)의 문자열을 가져와야합니다.

감사

내가 여기에 코드에 대해 뭔가를 놓친거야하지 않는 한
+0

'foreach' 루프로 무엇을 하려는지 알려줄 수 있습니까? IEnumerable을 구현하는 것이 여기서 의미가 없기 때문에, 원하는 것을 얻기위한 다른 방법을 제안 할 수 있습니다. – juharr

답변

1

는, 당신이 잘못 사용하는 것처럼 /를 IEnumerable 인터페이스의 기본 개념을 오해 보인다. IEnumerable은 동일한 유형의 객체 그룹을 나타 내기 위해 사용되며이 객체 그룹은 반복 될 수 있습니다. 당신이하고있는 일은 단지 수업 내에서 각각의 속성을 산출하는 것입니다. 요점은 무엇입니까? 속성 중 하나가 필요한 경우 일반적으로 액세스하지 않는 것이 좋을까요? 자신과 다른 사람들이 당신의 세 속성을 맹목적으로 반복하도록함으로써 당신이 얻을 수있는 것은 무엇이라고 생각합니까?

+0

첫째, 그 가치를 필요로하는 이유가 있거나 전혀 그렇게하지 않을 것입니다. 그리고 두 번째로, 당신이 질문에 직접 대답하지 않았기 때문에 당신이 대답을 모르는 것처럼 나는 그것을 취합니다. –

+1

@ Zath. 구체적으로 어떤 가치가 필요한 이유가 있습니까? 나는 직접적으로 질문에 대답하고있다. IEnumerable의 작동 방식이 아니기 때문에 열거 형의 어느 지점에서 어떤 속성에 액세스하고 있는지 알 수있는 방법이 될 수 없다. 전체 개념은 반복되는 가치 그룹 일 뿐이며 "아,이 클래스는 해당 클래스의 해당 속성에 해당합니다."라고 말할 수는 없습니다. 다른 모든 사람들이 사용하는 방식의 범위를 벗어나고 싶다면 달성하려는 대상에 대해보다 구체적으로 설명해야합니다. – furkle

+0

사실, 나는 데이터베이스를 반복하고 배치하기 위해 10 개의 별도 모델을 가지고 있습니다. 따라서 모든 항목을 데이터 집합에 배치하고 사용자 정의 테이블 형식을 사용하여 데이터베이스를 삽입/업데이트하는 것이 저장 프로 시저에 100 개의 매개 변수를 추가하는 대신 이동하는 가장 좋은 방법입니다. –

관련 문제