2010-10-06 33 views
2

在我的OrderedDictionary我想替換一個對象。我看到OrderedDictionary有一個名爲Insert()的方法。所以,我想當我得到要替換的對象的索引時,我用RemoveAt()刪除那個對象,然後用Insert()方法插入新對象。C#獲取OrderedDictionary中對象索引的最佳方式是什麼?

但是...我需要弄清楚我想替換的對象的索引是什麼。我應該簡單地使用for循環還是有更好的方法?

一些背景信息:這段代碼被放入方法中。該方法可以在另一個方法的for循環中多次調用。

+0

您是否知道要替換的對象的關鍵? – LukeH 2010-10-06 12:06:05

+0

是的,我知道。這就是爲什麼史蒂夫Townsends答案幫助我出來 – Martijn 2010-10-06 12:48:18

回答

2

如果你知道目標條目的鍵,你可以做這樣的:

myOrderedDictionary["keyToReplace"] = "modifiedValue"; 

否則,你將不得不更換循環之前的目標定位。

如果您只有目標對象,則可以通過循環訪問Values字段來獲取其索引,但請注意,此處重複(儘管不在Keys中)是合法的。

+0

哈哈,這很容易。我認爲這是隻讀的。猜猜我錯了=] – Martijn 2010-10-06 12:16:26

+0

@Martijn:如果它是隻讀的,你怎麼能期望使用'RemoveAt'和'Insert'? – Timwi 2010-10-06 12:18:51

+0

@Timwi:沒有想過那個.. – Martijn 2010-10-06 12:47:30

相關問題