2012-05-03 12 views
13

मौजूद है मैं शब्दकोश जो अपनी पुस्तकों में रखती है।जांच करता है, तो मूल्य पहले से ही

मैं कैसे जांच सकता हूं कि शब्दकोश में कोई पुस्तक है जो उपयोगकर्ता द्वारा प्रदान किए गए शीर्षक से मेल खाती है?

+3

'' के 'स्ट्रिंग' भाग के लिए आप क्या मूल्य प्रदान कर रहे हैं? – zimdanen

उत्तर

19

यदि आप पुस्तक शीर्षक का उपयोग कुंजी के रूप में नहीं कर रहे हैं, तो आपको मूल्यों पर गणना करना होगा और देखें कि किसी पुस्तक में वह शीर्षक है या नहीं।

foreach(KeyValuePair<string, book> b in books) // or foreach(book b in books.Values) 
{ 
    if(b.Value.title.Equals("some title", StringComparison.CurrentCultureIgnoreCase)) 
     return true 
} 

या आप उपयोग कर सकते हैं LINQ:

books.Any(tr => tr.Value.title.Equals("some title", StringComparison.CurrentCultureIgnoreCase)) 

दूसरे हाथ पर, आप, कुंजी के रूप में किताबें शीर्षक का उपयोग कर रहे हैं, तो आप बस कर सकते हैं:

books.ContainsKey("some title"); 
+0

धन्यवाद, आपका पहला कोड मदद करता है, जो LINQ पर आता है, मैंने कभी भी – Bublik

+0

@ user1224225 से पहले इसे आजमाया नहीं है यह स्वीकार्य उत्तर – Antonio

+0

होना चाहिए वर्तमान में .NET फ्रेमवर्क के नए संस्करण में ValueValue। @ Https://msdn.microsoft.com/en-us/library/a63811ah(v=vs.110).aspx देखें – Nikola

24
books.ContainsKey("book name"); 
+4

वह जानना चाहता है कि इसमें एक ज्ञात शीर्षक संपत्ति के साथ एक पुस्तक (डिक्शनरी का मूल्य) है, जो कि डिक्शनरी कुंजी नहीं है। – Amaranth

+1

चूंकि ओपी ने इसे चुना है, हो सकता है कि वह वास्तव में क्या पूछ रहा था .. – nawfal

1

आपके शब्दकोश में, कुंजी शीर्षक शीर्षक रखती है? यदि हां, तो अन्य उत्तरों के रूप में ContainsKey का उपयोग करें। कुंजी कुछ और पूरी तरह है, और आप मूल्य के (पुस्तक वस्तु की) title विशेषता जाँच करना चाहते हैं, तो आप इस तरह मैन्युअल रूप से यह करना होगा:

foreach(KeyValuePair<string,book> kvp in books) { 
    if (kvp.Value.title == "some title") 
     return kvp.Key; 
} 

return String.Empty; //not found 
4

आप LINQ उपयोग करने के लिए अनुमति दी जाती है, का उपयोग करके देखें नीचे कोड:

bool exists = books.Any(b => (b.Value != null && b.Value.title == "current title")); 
संबंधित मुद्दे