उपयोग एक List<string>
के बजाय एक HashSet<string>
। यह बेहतर प्रदर्शन करने के लिए तैयार है क्योंकि आपको किसी भी आइटम के लिए चेक प्रदान करने की आवश्यकता नहीं है। संग्रह आपके लिए इसका प्रबंधन करेगा। list
और set
के बीच यह अंतर है। नमूने के लिए:
HashSet<string> set = new HashSet<string>();
set.Add("a");
set.Add("a");
set.Add("b");
set.Add("c");
set.Add("b");
set.Add("c");
set.Add("a");
set.Add("d");
set.Add("e");
set.Add("e");
var total = set.Count;
कुल 5
है और मूल्यों a
, b
, c
, d
, e
हैं।
List<T>
का कार्यान्वयन आपको नटिवली नहीं देता है। आप इसे कर सकते हैं, लेकिन आपको यह नियंत्रण प्रदान करना होगा। नमूने के लिए, इस extension method
:
public static class CollectionExtensions
{
public static void AddItem<T>(this List<T> list, T item)
{
if (!list.Contains(item))
{
list.Add(item);
}
}
}
और इसका इस्तेमाल करते हैं:
var list = new List<string>();
list.AddItem(1);
list.AddItem(2);
list.AddItem(3);
list.AddItem(2);
list.AddItem(4);
list.AddItem(5);
स्रोत
2016-01-22 20:12:08
Lines2 जबकि कॉपी करने और कोड – vini
चिपकाने खेद स्ट्रिंग की सूची एक छोटा सा त्रुटि कर दिया था = SBC की तरह दो तार के बीच एक स्थान नहीं हो सकता BGP – vini
आप के लिए एक HashSet का उपयोग कर विचार सूची के बजाय है है इस मामले में, यह बहुत बेहतर प्रदर्शन करेगा। –
bashmohandes