Подтвердить что ты не робот

Проверить, существует ли значение

У меня есть словарь, в котором хранятся мои книги:

Dictionary<string, book> books

Определить книгу:

class book
{
    string author { get; set; }

    string title { get; set; }
} 

Я добавил несколько книг в словарь.

Как проверить, есть ли в словаре Словарь, который соответствует заголовку, предоставленному пользователем?

4b9b3361

Ответ 1

Если вы не используете название книги в качестве ключа, вам придется перечислить значения и посмотреть, содержат ли какие-либо книги это название.

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");

Ответ 2

books.ContainsKey("book name");

Ответ 3

Если вам разрешено использовать LINQ, попробуйте использовать приведенный ниже код:

bool exists = books.Any(b => (b.Value != null && b.Value.title == "current title"));

Ответ 4

В вашем словаре удерживает ли ключ заголовок? Если да, используйте ContainsKey в качестве других ответов. Если ключ совсем другой, и вы хотите проверить атрибут value (Book object's) title, вам нужно сделать это вручную следующим образом:

foreach(KeyValuePair<string,book> kvp in books) {
    if (kvp.Value.title == "some title")
        return kvp.Key;
}

return String.Empty; //not found