2014-01-09 1 views
0
Class1 : IClass 
{ 
    // ... 
} 

List<IClass> newList = new List<IClass>(); 
Class1 obj1 = new Class1(); 
newList.Add(obj1); 

나는 참고 문헌 목록이 있습니다. 맞습니까? 이제 새 객체가 나타납니다. 예를 들어 obj2는 Class1의 인스턴스이기도합니다. obj1에 obj1을 할당하고 싶습니다 (참고! obj1에 직접 액세스 할 수 없습니다). 내가 어떻게 할 수 있니?목록에서 참조에 액세스하는 방법?

+0

목록에 obj1 대신 obj2에 대한 참조가 포함되게하려면 목록에서 obj1을 제거하고 그 대신 obj2를 삽입해야합니다. –

+0

개체 또는 인스턴스를 서로 할당 할 수 있지만 개체, 인스턴스 등을 지정할 수는 있지만 쿼리가 명확하지 않습니다. "목록에서 사용할 수있는 참조를 사용하여 obj2에 obj2를 할당하십시오."라는 의미를 명확히 할 수 있다면 도움이됩니다. . 더 이상의 설명이 없으면이 부분은 나에게 의미가 없습니다. –

+0

user3076439가 말했듯이. 목록에 값이 아닌 개체에 대한 참조가 포함되어 있습니다. 이 참조를 얻고 주소 아래에 obj2를 저장하고 싶습니다. – user3076264

답변

0

나는 obj2obj1이 원래 가리킨 것과 같은 값을 가리 키길 원한다고 가정합니다. 그렇다면 인덱서를 사용하여 목록에서 값을 꺼내십시오.

Class1 obj2 = (Class1)newList[0]; 

캐스팅을 삽입해야한다는 점에 유의하십시오. 목록의 요소 유형은 IClass1이지만 obj2Class1으로 지정했습니다.

+0

아니요, obj1이 obj2와 같은 값을 가리 키길 원합니다. Obj2에는 가치있는 데이터가 있지만 목록을 통해서만 obj1을 사용할 수 있습니다. – user3076264

+0

그러면 obj1을 변경 하시겠습니까? 이것이 목록과 어떤 관련이 있습니까? – JaredPar

0

또 다른 옵션은 예를 obj1의 첫 번째 항목 아니었다면 당신이 목록에서 필요로하는 정확한 개체를 찾기 위해 LINQ를 사용하는 것입니다

Class1 obj2 
    = (Class1)newList.SingleOrDefault(x => x.SomeUniquePropertyOfClass1 == someId); 

당신은 개체에 여러 속성을 비교해야 할 수도 있습니다를, 그러나 나는 무엇이 Class1처럼 보이는지 모른다.

0

Object1, Object2 (둘 다 동일한 클래스) 및 List of Objects를 가지고 있다는 것을 의미합니다.

List1이 Object1을 가리키며, 질문은 Object1이 목록의 참조를 사용하여 Object2를 가리키는 방법입니다.

newList[0] = obj2 

은 목록의 참조 만 변경하지만 obj1은 변경되지 않습니다.

관련 문제