我的字典持有我的書:檢查是否值已經存在
Dictionary<string, book> books
書definiton:
class book
{
string author { get; set; }
string title { get; set; }
}
我已經添加了一些書字典。
如何檢查字典中是否有與用戶提供的標題匹配的圖書?
我的字典持有我的書:檢查是否值已經存在
Dictionary<string, book> books
書definiton:
class book
{
string author { get; set; }
string title { get; set; }
}
我已經添加了一些書字典。
如何檢查字典中是否有與用戶提供的標題匹配的圖書?
如果您不使用書名作爲鍵,那麼您將不得不枚舉所有值並查看是否有任何書籍包含該標題。
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");
在你的字典中,密鑰是否包含標題?如果是,則使用ContainsKey
作爲其他答案。如果關鍵是別的東西完全,並且要檢查值的(Book對象的)title
屬性,你不得不手動做這樣的:
foreach(KeyValuePair<string,book> kvp in books) {
if (kvp.Value.title == "some title")
return kvp.Key;
}
return String.Empty; //not found
如果你被允許使用LINQ,嘗試使用下面的代碼:
bool exists = books.Any(b => (b.Value != null && b.Value.title == "current title"));
你提供'''字符串'部分的值是什麼? –
zimdanen