私は自分の本を保持する辞書を持っています:
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