के लिए comparer उपयोग करने के लिए एक और सवाल मैं यहाँ से पूछा मैं अपने वस्तुओंकैसे एक HashSet
के लिए एक HashSet उपयोग करने के लिए मैं एक स्ट्रिंग और अपने मालिक के लिए एक संदर्भ युक्त वस्तुओं का निर्माण करेगा चाहते हैं के परिणामस्वरूप।
public class Synonym
{
private string name;
private Stock owner;
public Stock(string NameSynonym, Stock stock)
{
name=NameSynonym;
owner=stock
}
// [+ 'get' for 'name' and 'owner']
}
मुझे समझ में आता है कि मुझे तुलनात्मक की आवश्यकता है, लेकिन पहले कभी इसका उपयोग नहीं किया गया था। क्या मुझे एक अलग वर्ग बनाना चाहिए? जैसे:
public class SynonymComparer : IComparer<Synonym>
{
public int Compare(Synonym One, Synonym Two)
{ // Should I test if 'One == null' or 'Two == null' ????
return String.Compare(One.Name, Two.Name, true); // Caseinsesitive
}
}
मैं एक समारोह (या नेस्टेड वर्ग [? शायद एक सिंगलटन] यदि आवश्यक हो) वर्ग पर्याय के बजाय एक और (स्वतंत्र) वर्ग का हिस्सा होने के लिए पसंद करते हैं। क्या यह संभव है?
उपयोग के बारे में: जैसा कि मुझे लगता है कि मुझे क्लास समानार्थी के अंदर एक खोज (स्ट्रिंग नेमसिंकीम) फ़ंक्शन लिखना चाहिए, लेकिन मुझे यह कैसे करना चाहिए?
public class SynonymManager
{
private HashSet<SynonymComparer<Synonym>> ListOfSynonyms;
public SynonymManager()
{
ListOfSymnonyms = new HashSet<SynonymComparer<Synonym>>();
}
public void SomeFunction()
{ // Just a function to add 2 sysnonyms to 1 stock
Stock stock = GetStock("General Motors");
Synonym otherName = new Synonym("GM", stock);
ListOfSynonyms.Add(otherName);
Synonym otherName = new Synonym("Gen. Motors", stock);
ListOfSynonyms.Add(otherName);
}
public Synonym Find(string NameSynomym)
{
return ListOfSynonyms.??????(NameSynonym);
}
}
उपरोक्त कोड में मुझे नहीं पता कि 'ढूंढें' विधि को कैसे कार्यान्वित किया जाए। मैं कैसे करूं?
किसी भी मदद की सराहना की होगी (पी एस यह कैसे लागू किया जाना चाहिए के बारे में मेरे विचारों को पूरी तरह से गलत मुझे पता है और मुझे बताओ कि लागू करने के लिए कर रहे हैं)
क्या मैं अपना उत्तर सुधारने के लिए कुछ और कर सकता हूं? –