2011-05-30 17 views
13

List<string> paths = new List<string>(); होने के बाद मैं उस आइटम को हटाना चाहता हूं जो मुझे यकीन नहीं है। क्या मुझे यह जांचना चाहिए कि यह मौजूद है या सिर्फ निकालें विधि को सीधे आगे चलाएं?सूची <T> सूची चाहिए। सूची <T> के साथ पहले से हटाएं। विशेषज्ञ?

if (paths.Exists(stringVar))paths.Remove(stringVar) से पहले एक अच्छा अभ्यास की आवश्यकता है या माना जाता है?

रनिंग के बिना निकालें रनिंग सूची में ऐसी कोई वस्तु नहीं होने पर झूठी वापसी होगी।

+0

यह अपवाद नहीं फेंकता है हालांकि आइटम को हटाने से पहले अस्तित्व की जांच करने के लिए हमेशा अच्छा अभ्यास होगा। यह चोट नहीं पहुंचाएगा :) – Devjosh

+3

@ डेवजोश: यह अनावश्यक है और ** ** प्रदर्शन महत्वपूर्ण परिस्थितियों में ** चोट पहुंचाएगा बड़ी सूचियां, क्योंकि अतिरिक्त चेक के साथ, सूची एक बार के बजाय दो बार उलटी जाती है। –

+0

@ डैनियल धन्यवाद मैं हटाने विधि के डिफ़ॉल्ट व्यवहार को नहीं जानता था – Devjosh

उत्तर

17

नहीं, यह अपवाद नहीं फेंकता है, और अतिरिक्त जांच की कोई आवश्यकता नहीं है। MSDN देखें:

सत्य अगर आइटम सफलतापूर्वक हटा दिया गया है; अन्यथा, झूठी। यह विधि सूची लौटाती है यदि आइटम सूची में नहीं मिला था।

8

नहीं, जांच न करें। क्योंकि Remove पहले से ही चेक करता है। आपकी अतिरिक्त जांच बस अनिवार्य है और कोई लाभ नहीं लाती है।

+0

न केवल इसमें लाभ जोड़ता है, बल्कि इसे सूची का एक और स्कैन (जो ओ (एन) है) –

+0

दाएं। मैंने पहले ही इस बात पर ध्यान दिया कि इस सवाल पर देवजोश की टिप्पणी पर मेरी टिप्पणी में। –

संबंधित मुद्दे