我有一本字典,里面有我的书:
Dictionary<string, book> books
书籍定义:
class book
{
string author { get; set; }
string title { get; set; }
}
我在字典里加了一些书。
如何检查字典中是否有一本书与用户提供的标题相匹配?
我有一本字典,里面有我的书:
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