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

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

我有引用列表,對不對?現在,新的對象出現了。例如obj2也是Class1的一個實例。我想使用列表中的可用參考將obj2分配給obj1(注意!我無法直接訪問obj1)。我怎麼能這樣做?如何訪問列表中的引用?

+0

如果您希望列表中包含對obj2而不是obj1的引用,則需要從列表中刪除obj1,並將obj2插入其中。 –

+0

雖然你可以分配對象或實例給對方,但你只能指定變量,字段等,你的任務並不清楚。如果你能夠闡明你的意思,「通過使用列表中的可用參考將obj2賦值給obj1」 。沒有進一步的解釋,這部分對我沒有任何意義。 –

+0

正如user3076439所說的。 該列表包含對象的引用,而不是值。我想獲得這個引用並將obj2保存在地址下。 – user3076264

回答

0

我假設你的意思是你想要obj2指向obj1最初指向的值。如果是這樣,那麼只需使用索引器從列表中抓取值

Class1 obj2 = (Class1)newList[0]; 

請注意,我必須在其中插入一個轉換。列表中元素的類型爲IClass1,但您將obj2指定爲Class1

+0

不,我希望obj1指向與obj2相同的值。 Obj2有​​值得的數據,但是我只能通過List使用obj1。 – user3076264

+0

你想改變obj1呢?這與列表有什麼關係? – JaredPar

0

另一種選擇是使用LINQ找到你從列表中需要的,舉例來說如果obj1不是第一個項目的具體目標:

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

您可能需要多個屬性在你的對象進行比較,但我不知道Class1是什麼樣子。

0

他/她的意思是你有Object1,Object2(都是同一個類)和List of Objects。

List1指向Object1,問題是如何使Object1指向使用列表中的引用的Object2。

newList[0] = obj2 

只會改變列表中的引用,但obj1將保持不變。