की संपूर्ण सामग्री मेरे पास HashSet<string>
है जो आवधिक रूप से जोड़ा जाता है। मैं क्या करना चाहता हूं कि पूरे हैशसेट को फोरच लूप किए बिना स्ट्रिंग में डालना है। क्या किसी के पास कोई उदाहरण है?सी # हैशसेट <string>
उत्तर
आप सामग्री पर लूप करेंगे, चाहे आप स्पष्ट रूप से एक लिखें या नहीं।
हालांकि, स्पष्ट लेखन के बिना यह करने के लिए, और से अगर "डाली" क्या आपका मतलब "जोड़", तो आप इस
string output = string.Join("", yourSet); // .NET 4.0
string output = string.Join("", yourSet.ToArray()); // .NET 3.5
+1, लेकिन यह भी ध्यान देने योग्य है कि .NET 3.5 संस्करण स्पष्ट लूप की तुलना में "बदतर" है: इसे डेटा के माध्यम से दो पास की आवश्यकता होती है (एक 'ToArray' कॉल के लिए और एक' जॉइन 'कॉल के लिए) और एक अतिरिक्त आवंटन ('ToArray' द्वारा उत्पन्न सरणी)। – LukeH
मुझे @ ब्रायन का जवाब पसंद है - यह आपको मानों के बीच लूप को क्या रखना चाहिए पर नियंत्रण देता है: string.Join (",", set)। ऊपर 4.0 वाक्यविन्यास पसंद करने के प्रदर्शन कारण होंगे? –
की तरह कुछ लिखते थे आप एक ही तार का एक संयोजन है कि चाहते हैं HashSet में मूल्यों, इस काम करना चाहिए ...
class Program
{
static void Main(string[] args)
{
var set = new HashSet<string>();
set.Add("one");
set.Add("two");
set.Add("three");
var count = string.Join(", ", set);
Console.WriteLine(count);
Console.ReadKey();
}
}
आप एक ही विधि सभी HashSet के आइटम concatenated प्राप्त करना चाहते हैं, तो आप एक विस्तार विधि बना सकते हैं।
[] के
[TestClass]
public class UnitTest1
{
[TestMethod]
public void TestMethod1()
{
HashSet<string> hashset = new HashSet<string>();
hashset.Add("AAA");
hashset.Add("BBB");
hashset.Add("CCC");
Assert.AreEqual<string>("AAABBBCCC", hashset.AllToString());
}
}
public static class HashSetExtensions
{
public static string AllToString(this HashSet<string> hashset)
{
lock (hashset)
{
StringBuilder sb = new StringBuilder();
foreach (var item in hashset)
sb.Append(item);
return sb.ToString();
}
}
}
आप Linq का उपयोग कर सकते हैं:
hashSet.Aggregate((a,b)=>a+" "+b)
जो आपके HashSet
- 1. हैशसेट इटरेटिंग सी #
- 2. फास्ट सी ++ कंटेनर जैसे सी # हैशसेट <T> और शब्दकोश <K,V>?
- 3. इंडेक्सऑटऑफेंजेंज अपवाद जब हैशसेट <T>
- 4. सी # हैशसेट रूपांतरण सूची में
- 5. हैशसेट
- 6. सॉर्टेडसेट <T> बनाम हैशसेट <T>
- 7. सी # हैशसेट <T> खोज प्रदर्शन (एक पर्यवेक्षण चयन <T> की तुलना में)?
- 8. हैशसेट <T> कहां VS2012 में गए?
- 9. .NET 4 ISet <> हैशसेट <> NHHernate Iesi को बदल सकता है। चयन आईसेट, हैशसेट?
- 10. सी # 2.0 में हैशसेट का उपयोग, 3.5
- 11. .NET हैशसेट
- 12. जावा हैशसेट
- 13. हैशसेट <String> से स्ट्रिंग में कनवर्ट करना []
- 14. हैशसेट के लिए Enumerable.ElementAt <TSource> ओ (1) है?
- 15. हैशसेट <T> (IEqualityComparer <T>) की लुकअप टाइम जटिलता क्या है?
- 16. परिभाषित करें: हैशसेट क्या है?
- 17. क्यों हैशसेट <T> IReadOnlyCollection <T> लागू नहीं करता है?
- 18. हैशसेट जावा सदस्य
- 19. यूनिट परीक्षणों में हैशसेट
- 20. हैशसेट, वेक्टर, लिंक्डलिस्ट
- 21. जावा में हैशसेट टकराव
- 22. हैशसेट/हैश मैप जावा
- 23. सी # में लिंक्ड हैशसेट (जावा) के बराबर क्या है?
- 24. हैशसेट डुप्लिकेट आइटम सम्मिलन की अनुमति देता है - सी #
- 25. एक हैशसेट सॉर्ट करें .Net 3.5
- 26. ओवरलोडिंग ऑपरेटर << - सी ++
- 27. इकाई फ्रेमवर्क - संबंधित आईसीओलेक्शन हैशसेट
- 28. जावा के हैशसेट PHP में
- 29. सी ++ ऑपरेटर की कई परिभाषाएं <<
- 30. हैशसेट <T> सबसे तेज़ कंटेनर देखने के लिए है?
एक एकल स्ट्रिंग के दो तत्वों के बीच एक सफेद स्पेस डाल देता? मूल्यों को संयोजित करने के रूप में? – Brian
मैं कुछ के बारे में उत्सुक हूँ। मैंने फॉर्म के * दर्जन * प्रश्नों को देखा है "मैं ऐसा कुछ करना चाहता हूं जो स्पष्ट रूप से एक लूप की आवश्यकता है, और मैं एक लूप का उपयोग नहीं करना चाहता हूं"। ** क्यों? ** इस घृणित लोगों के पास लूप के लिए कहां है? –
मुझे लगता है कि लोग अपने कोड की अर्थपूर्ण स्पष्टता में सुधार करना चाहते हैं। यदि आपके पास 'स्ट्रिंगबिल्डर एसबी = नया स्ट्रिंगबिल्डर() के बजाय' mySet.ItemsAsOneBigString() 'था; foreach (Myset में स्ट्रिंग एस) sb.append (ओं); वापस sb.ToString(); 'हाँ, यह छोटा है, लेकिन फिर सी # सिंटैक्टिक और फ्रेमवर्क चीनी "cubes" के कई अन्य हैं;) जो कोड को पढ़ने और निर्धारित करने के लिए स्पष्ट बनाता है। – jasonh