Class1 : IClass
{
// ...
}
List<IClass> newList = new List<IClass>();
Class1 obj1 = new Class1();
newList.Add(obj1);
我有引用列表,對不對?現在,新的對象出現了。例如obj2也是Class1的一個實例。我想使用列表中的可用參考將obj2分配給obj1(注意!我無法直接訪問obj1)。我怎麼能這樣做?如何訪問列表中的引用?
Class1 : IClass
{
// ...
}
List<IClass> newList = new List<IClass>();
Class1 obj1 = new Class1();
newList.Add(obj1);
我有引用列表,對不對?現在,新的對象出現了。例如obj2也是Class1的一個實例。我想使用列表中的可用參考將obj2分配給obj1(注意!我無法直接訪問obj1)。我怎麼能這樣做?如何訪問列表中的引用?
我假設你的意思是你想要obj2
指向obj1
最初指向的值。如果是這樣,那麼只需使用索引器從列表中抓取值
Class1 obj2 = (Class1)newList[0];
請注意,我必須在其中插入一個轉換。列表中元素的類型爲IClass1
,但您將obj2
指定爲Class1
。
不,我希望obj1指向與obj2相同的值。 Obj2有值得的數據,但是我只能通過List使用obj1。 – user3076264
你想改變obj1呢?這與列表有什麼關係? – JaredPar
另一種選擇是使用LINQ找到你從列表中需要的,舉例來說如果obj1
不是第一個項目的具體目標:
Class1 obj2
= (Class1)newList.SingleOrDefault(x => x.SomeUniquePropertyOfClass1 == someId);
您可能需要多個屬性在你的對象進行比較,但我不知道Class1
是什麼樣子。
他/她的意思是你有Object1,Object2(都是同一個類)和List of Objects。
List1指向Object1,問題是如何使Object1指向使用列表中的引用的Object2。
newList[0] = obj2
只會改變列表中的引用,但obj1將保持不變。
如果您希望列表中包含對obj2而不是obj1的引用,則需要從列表中刪除obj1,並將obj2插入其中。 –
雖然你可以分配對象或實例給對方,但你只能指定變量,字段等,你的任務並不清楚。如果你能夠闡明你的意思,「通過使用列表中的可用參考將obj2賦值給obj1」 。沒有進一步的解釋,這部分對我沒有任何意義。 –
正如user3076439所說的。 該列表包含對象的引用,而不是值。我想獲得這個引用並將obj2保存在地址下。 – user3076264