2011-05-30 29 views
13

List<string> paths = new List<string>();我想刪除我不確定的項目。我應該檢查它是否存在,或者直接運行Remove方法?應該列表<T>。刪除之前有列表<T>。存在?

if (paths.Exists(stringVar))paths.Remove(stringVar)之前需要還是考慮好的做法?

如果列表中沒有這樣的項目,運行Remove without Exists將僅返回false。

+0

它不會拋出異常,雖然它總是很好的做法,以檢查存在之前刪除item.it不會傷害:) – Devjosh 2011-05-30 10:23:31

+3

@Devjosh:這是沒有必要的,**會**在性能危急的情況下傷害與大列表,因爲使用額外的檢查,列表遍歷兩次而不是一次。 – 2011-05-30 10:27:48

+0

@丹尼爾感謝我不知道刪除方法的默認行爲 – Devjosh 2011-05-30 10:55:54

回答

17

不,它不會引發異常,並且不需要額外的檢查。請參閱MSDN

如果項目已成功刪除,則爲true; 否則爲false。如果在 列表中找不到項目,此方法也會返回false。

8

不,不檢查。因爲Remove已經做了檢查。您的額外支票只是多餘的,並沒有帶來任何好處。

+0

它不僅不會增加好處,但它需要另一個列表掃描(這是O(N)) – 2011-05-30 11:11:33

+0

正確。我在Devjosh對這個問題的評論中已經指出了這一點。 – 2011-05-30 11:13:02