[英]check if value already exists
我有一本字典,里面放着我的書:
Dictionary<string, book> books
書籍定義:
class book
{
string author { get; set; }
string title { get; set; }
}
我在字典里加了一些書。
如何檢查字典中是否有與用戶提供的書名相匹配的書?
books.ContainsKey("book name");
如果您不使用書名作為鍵,則您必須枚舉值並查看是否有任何書包含該書名。
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");
如果您可以使用 LINQ,請嘗試使用以下代碼:
bool exists = books.Any(b => (b.Value != null && b.Value.title == "current title"));
在您的字典中,鍵是否包含標題? 如果是,請使用ContainsKey
作為其他答案。 如果鍵完全不同,並且您想檢查值的(Book 對象的) title
屬性,則必須像這樣手動執行此操作:
foreach(KeyValuePair<string,book> kvp in books) {
if (kvp.Value.title == "some title")
return kvp.Key;
}
return String.Empty; //not found
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.