सी # नेट 3.5 में HashSet<string>
कैसे क्रमबद्ध कर सकता है?एक हैशसेट सॉर्ट करें .Net 3.5
उत्तर
आप OrderBy
विधि का उपयोग कर सकते हैं, या तो एक आईसीओएमपेयर (यानी http://msdn.microsoft.com/en-us/library/bb549422.aspx) या कुछ लैम्बडास के साथ अपनी तुलनात्मक इनलाइन का उपयोग कर (मैं आमतौर पर नीचे की तुलना में मेरी तुलना के लिए भविष्यवाणी करता हूं)।
प्रति कड़ी के रूप में देखें:
class Pet
{
public string Name { get; set; }
public int Age { get; set; }
}
public static void OrderByEx1()
{
Pet[] pets = { new Pet { Name="Barley", Age=8 },
new Pet { Name="Boots", Age=4 },
new Pet { Name="Whiskers", Age=1 } };
IEnumerable<Pet> query = pets.OrderBy(pet => pet.Age);
foreach (Pet pet in query)
{
Console.WriteLine("{0} - {1}", pet.Name, pet.Age);
}
}
/*
This code produces the following output:
Whiskers - 1
Boots - 4
Barley - 8
*/
और अधिक पढ़ें: http://msdn.microsoft.com/en-us/library/bb534966.aspx
में उपलब्ध नहीं है यह स्पष्ट रूप से हैशसेट को सॉर्ट नहीं करता है, लेकिन हैशसेट का क्रमबद्ध दृश्य देता है। – CodesInChaos
हां यह सच है, हैशसेट के भीतर निहित मान क्रमबद्ध नहीं हैं लेकिन एक क्रमबद्ध दृश्य (या प्रतिलिपि) में पहुंचा जा सकता है। – ericosg
आप नहीं करते हैं। परिभाषा के अनुसार, HashSet
क्रमबद्ध नहीं है।
यदि आप सॉर्ट किए गए हैश सेट चाहते हैं, तो आपको SortedSet
का उपयोग करना चाहिए। जिस तरीके से यह खुलासा करता है वह अनिवार्य रूप से HashSet
द्वारा प्रदत्त उन लोगों का एक सुपरसेट है, जिसमें इसकी सामग्री को सॉर्ट करने की क्षमता शामिल है।
ध्यान दें कि सॉर्टेडसेट में आपके पास हैशसेट का उपयोग करते समय अलग-अलग मान नहीं होंगे, लेकिन उचित एक्सटेंशन विधि के साथ इसे बनाते समय आप विशिष्ट मान लोड कर सकते हैं। – ericosg
@ericosg मैं आपकी टिप्पणी को समझ नहीं पा रहा हूं। – CodesInChaos
मेरा मतलब था, अगर आपको सॉर्टेडसेट में विशिष्ट मानों की आवश्यकता है तो आपको अलग-अलग दृश्य प्राप्त करने के लिए डिस्टिंट() को कॉल करने की आवश्यकता है। यदि आपको सॉर्ट किए गए हैशसेट की आवश्यकता है तो आपको सॉर्ट किए गए दृश्य प्राप्त करने के लिए ऑर्डर करने की आवश्यकता है। – ericosg
HashSet < स्ट्रिंग > डिजाइन के अनुसार क्रमबद्ध नहीं है। आप आइटम सॉर्ट करने के लिए चाहते हैं एक बार (~ नहीं अक्सर) तो आप OrderBy LINQ विधि (क्योंकि HashSet < स्ट्रिंग > लागू करता IEnumerable < स्ट्रिंग >) का उपयोग कर सकते हैं: hs.OrderBy (रों => रों);
आप क्रमबद्ध HashSet की जरूरत है तो आप SortedDictionary वर्ग का उपयोग कर सकते है - बस TValue सामान्य पैरामीटर के लिए कुछ डमी प्रकार (अर्थात bool) का उपयोग करें।
SortedSet कक्षा .NET 3.5 में उपलब्ध नहीं है।
- 1. .NET हैशसेट
- 2. सी # 2.0 में हैशसेट का उपयोग, 3.5
- 3. .NET 3.5
- 4. .net 3.5
- 5. परिभाषित करें: हैशसेट क्या है?
- 6. .NET 3.5
- 7. .net 3.5
- 8. .NET 3.5
- 9. .NET 3.5
- 10. XmlSerializer .NET 3.5 और CF.NET 3.5
- 11. एक्सएमएलएसरियललाइज़र .NET 3.5 SP1
- 12. सी # और .NET 3.5
- 13. .NET 3.5 SP1
- 14. .NET 3.5 (या 4.0)
- 15. .NET 2.0 या 3.5?
- 16. .NET 3.5/VS 2008
- 17. .NET Framework 3.5
- 18. .NET 2.0/3.5
- 19. सी # .net सीएफ 3.5
- 20. दृश्य कर्सर (.NET 3.5)
- 21. .NET 3.5 में (एक शिपिंग उत्पाद में)
- 22. .NET 2.0 समाधान को .NET 3.5
- 23. .NET 3.5 एसडीके कहां है?
- 24. माइक्रोसॉफ्ट .NET 3.5 पूर्ण डाउनलोड
- 25. एक नेट 3.5 आवेदन
- 26. हैशसेट
- 27. 3.5
- 28. 3.5
- 29. क्या कोई GUID.TryParse() .NET 3.5 में है?
- 30. जावा हैशसेट
आप नहीं कर सकते। 'हैशसेट' परिभाषा द्वारा क्रमबद्ध नहीं है। क्या आप इसकी एक क्रमबद्ध प्रतिलिपि बनाना चाहते हैं जो एक सरणी है? – svick
इन-प्लेस या सॉर्ट की गई प्रतिलिपि सॉर्ट करें? –