Bub*_*lik 18 c# dictionary contains
我有字典拿着我的书:
Dictionary<string, book> books
Run Code Online (Sandbox Code Playgroud)
预定定义:
class book
{
string author { get; set; }
string title { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我在字典里添加了一些书.
如何检查词典中是否有与用户提供的标题相匹配的书?
Bre*_*dan 32
books.ContainsKey("book name");
Run Code Online (Sandbox Code Playgroud)
SPF*_*ake 30
如果您没有使用书名作为键,那么您将必须枚举值并查看是否有任何书籍包含该标题.
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
}
Run Code Online (Sandbox Code Playgroud)
或者您可以使用LINQ:
books.Any(tr => tr.Value.title.Equals("some title", StringComparison.CurrentCultureIgnoreCase))
Run Code Online (Sandbox Code Playgroud)
另一方面,如果您使用书籍标题作为关键字,那么您可以简单地执行以下操作:
books.ContainsKey("some title");
Run Code Online (Sandbox Code Playgroud)
如果您被允许使用LINQ,请尝试使用以下代码:
bool exists = books.Any(b => (b.Value != null && b.Value.title == "current title"));
Run Code Online (Sandbox Code Playgroud)