簡體   English   中英

檢查值是否已經存在

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM