有List<string> paths = new List<string>();
我想刪除我不確定的項目。我應該檢查它是否存在,或者直接運行Remove方法?應該列表<T>。刪除之前有列表<T>。存在?
是if (paths.Exists(stringVar))
在paths.Remove(stringVar)
之前需要還是考慮好的做法?
如果列表中沒有這樣的項目,運行Remove without Exists將僅返回false。
有List<string> paths = new List<string>();
我想刪除我不確定的項目。我應該檢查它是否存在,或者直接運行Remove方法?應該列表<T>。刪除之前有列表<T>。存在?
是if (paths.Exists(stringVar))
在paths.Remove(stringVar)
之前需要還是考慮好的做法?
如果列表中沒有這樣的項目,運行Remove without Exists將僅返回false。
不,它不會引發異常,並且不需要額外的檢查。請參閱MSDN:
如果項目已成功刪除,則爲true; 否則爲false。如果在 列表中找不到項目,此方法也會返回false。
不,不檢查。因爲Remove
已經做了檢查。您的額外支票只是多餘的,並沒有帶來任何好處。
它不僅不會增加好處,但它需要另一個列表掃描(這是O(N)) – 2011-05-30 11:11:33
正確。我在Devjosh對這個問題的評論中已經指出了這一點。 – 2011-05-30 11:13:02
它不會拋出異常,雖然它總是很好的做法,以檢查存在之前刪除item.it不會傷害:) – Devjosh 2011-05-30 10:23:31
@Devjosh:這是沒有必要的,**會**在性能危急的情況下傷害與大列表,因爲使用額外的檢查,列表遍歷兩次而不是一次。 – 2011-05-30 10:27:48
@丹尼爾感謝我不知道刪除方法的默認行爲 – Devjosh 2011-05-30 10:55:54