私の本を保持する辞書があります:
Dictionary<string, book> books
ブック定義:
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");
books.ContainsKey("book name");
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