{"id":25262,"date":"2022-12-09T02:00:55","date_gmt":"2022-12-08T20:30:55","guid":{"rendered":"https:\/\/jassweb.com\/solved\/solved-is-it-possible-to-have-dictionary-where-keys-are-of-type-bool\/"},"modified":"2022-12-09T02:00:55","modified_gmt":"2022-12-08T20:30:55","slug":"solved-is-it-possible-to-have-dictionary-where-keys-are-of-type-bool","status":"publish","type":"post","link":"https:\/\/jassweb.com\/solved\/solved-is-it-possible-to-have-dictionary-where-keys-are-of-type-bool\/","title":{"rendered":"[Solved] Is it possible to have dictionary where keys are of type bool?"},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<div id=\"answer-41263162\" class=\"answer js-answer accepted-answer js-accepted-answer\" data-answerid=\"41263162\" data-parentid=\"41263041\" data-score=\"6\" data-position-on-page=\"1\" data-highest-scored=\"1\" data-question-has-accepted-highest-score=\"1\" itemprop=\"acceptedAnswer\" itemscope itemtype=\"https:\/\/schema.org\/Answer\">\n<div class=\"post-layout\">\n<div class=\"votecell post-layout--left\"><\/div>\n<div class=\"answercell post-layout--right\">\n<div class=\"s-prose js-post-body\" itemprop=\"text\">\n<p>You cannot use a dictionary of Booleans, because it is limited to only two values. This will inevitably lead to key collisions, because you plan to add more than two items to it. Good news is that you do not need a dictionary anyway, because you use it as a collection of tuples. This will work:<\/p>\n<pre><code>var tupleList = new List&lt;Tuple&lt;bool,string&gt;&gt; {\n    Tuple.Create(new ProjectDiscrepancyWrongLocation().Conditions(row), \"88ff2dfb-6190-4ab6-b13b-68de1719eac2\")\n,   Tuple.Create(new DestructionLeakiness().Conditions(row), \"af018ee7-7974-45f8-a508-18359cde4108\")\n,   Tuple.Create(new CoatingInsulationDefect().Conditions(row), \"232b2b2e-abc0-46b2-8b8c-45fede83ad83\"), ...\n};\nreturn tupleList.FirstOrDefault(t =&gt; t.Item1)?.Item2;\n<\/code><\/pre>\n<p>As far as a dictionary with Boolean keys is concerned, when you need a <code>Dictionary<\/code> key, <code>bool<\/code> is as good as any other type with hash code and equals.<\/p>\n<p>A dictionary on a Boolean would not be a very efficient data structure, though, because you would be able to store a maximum of two strings &#8211; one for each value of <code>bool<\/code>. You can accomplish (nearly<sup>*<\/sup>) the same thing with an array of two strings, and indexing them with <code>cond ? 1 : 0<\/code> expression:<\/p>\n<pre><code>string messages[] = new string[2] { \"Message on false\", \"Message on true\"};\nvar msg = messages[condition ? 1 : 0];\n<\/code><\/pre>\n<p><sup>*<\/sup> Dictionary would let you distinguish between a situation when a key is not set vs. a key is set to <code>null<\/code> value, while an array wouldn&#8217;t let you do it.<\/p>\n<\/p><\/div>\n<div class=\"mt24\"><\/div>\n<\/div>\n<p>            <span class=\"d-none\" itemprop=\"commentCount\">0<\/span> <\/p><\/div>\n<\/div>\n<p>[ad_2]<\/p>\n<p>solved Is it possible to have dictionary where keys are of type bool? <\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] You cannot use a dictionary of Booleans, because it is limited to only two values. This will inevitably lead to key collisions, because you plan to add more than two items to it. Good news is that you do not need a dictionary anyway, because you use it as a collection of tuples. This &#8230; <a title=\"[Solved] Is it possible to have dictionary where keys are of type bool?\" class=\"read-more\" href=\"https:\/\/jassweb.com\/solved\/solved-is-it-possible-to-have-dictionary-where-keys-are-of-type-bool\/\" aria-label=\"More on [Solved] Is it possible to have dictionary where keys are of type bool?\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[320],"tags":[324,1616,834],"class_list":["post-25262","post","type-post","status-publish","format-standard","hentry","category-solved","tag-c","tag-collections","tag-dictionary"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>[Solved] Is it possible to have dictionary where keys are of type bool? - JassWeb<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/jassweb.com\/solved\/solved-is-it-possible-to-have-dictionary-where-keys-are-of-type-bool\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[Solved] Is it possible to have dictionary where keys are of type bool? - JassWeb\" \/>\n<meta property=\"og:description\" content=\"[ad_1] You cannot use a dictionary of Booleans, because it is limited to only two values. This will inevitably lead to key collisions, because you plan to add more than two items to it. Good news is that you do not need a dictionary anyway, because you use it as a collection of tuples. This ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jassweb.com\/solved\/solved-is-it-possible-to-have-dictionary-where-keys-are-of-type-bool\/\" \/>\n<meta property=\"og:site_name\" content=\"JassWeb\" \/>\n<meta property=\"article:published_time\" content=\"2022-12-08T20:30:55+00:00\" \/>\n<meta name=\"author\" content=\"Kirat\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kirat\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-is-it-possible-to-have-dictionary-where-keys-are-of-type-bool\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-is-it-possible-to-have-dictionary-where-keys-are-of-type-bool\/\"},\"author\":{\"name\":\"Kirat\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\"},\"headline\":\"[Solved] Is it possible to have dictionary where keys are of type bool?\",\"datePublished\":\"2022-12-08T20:30:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-is-it-possible-to-have-dictionary-where-keys-are-of-type-bool\/\"},\"wordCount\":191,\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"keywords\":[\"c++\",\"collections\",\"dictionary\"],\"articleSection\":[\"Solved\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-is-it-possible-to-have-dictionary-where-keys-are-of-type-bool\/\",\"url\":\"https:\/\/jassweb.com\/solved\/solved-is-it-possible-to-have-dictionary-where-keys-are-of-type-bool\/\",\"name\":\"[Solved] Is it possible to have dictionary where keys are of type bool? - JassWeb\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#website\"},\"datePublished\":\"2022-12-08T20:30:55+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-is-it-possible-to-have-dictionary-where-keys-are-of-type-bool\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/jassweb.com\/solved\/solved-is-it-possible-to-have-dictionary-where-keys-are-of-type-bool\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-is-it-possible-to-have-dictionary-where-keys-are-of-type-bool\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/jassweb.com\/solved\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Solved] Is it possible to have dictionary where keys are of type bool?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/jassweb.com\/solved\/#website\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"name\":\"JassWeb\",\"description\":\"Build High-quality Websites\",\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/jassweb.com\/solved\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\",\"name\":\"Jass Web\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"contentUrl\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"width\":693,\"height\":132,\"caption\":\"Jass Web\"},\"image\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\",\"name\":\"Kirat\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775798750\",\"contentUrl\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775798750\",\"caption\":\"Kirat\"},\"sameAs\":[\"http:\/\/jassweb.com\"],\"url\":\"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"[Solved] Is it possible to have dictionary where keys are of type bool? - JassWeb","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/jassweb.com\/solved\/solved-is-it-possible-to-have-dictionary-where-keys-are-of-type-bool\/","og_locale":"en_US","og_type":"article","og_title":"[Solved] Is it possible to have dictionary where keys are of type bool? - JassWeb","og_description":"[ad_1] You cannot use a dictionary of Booleans, because it is limited to only two values. This will inevitably lead to key collisions, because you plan to add more than two items to it. Good news is that you do not need a dictionary anyway, because you use it as a collection of tuples. This ... Read more","og_url":"https:\/\/jassweb.com\/solved\/solved-is-it-possible-to-have-dictionary-where-keys-are-of-type-bool\/","og_site_name":"JassWeb","article_published_time":"2022-12-08T20:30:55+00:00","author":"Kirat","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Kirat","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jassweb.com\/solved\/solved-is-it-possible-to-have-dictionary-where-keys-are-of-type-bool\/#article","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/solved-is-it-possible-to-have-dictionary-where-keys-are-of-type-bool\/"},"author":{"name":"Kirat","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31"},"headline":"[Solved] Is it possible to have dictionary where keys are of type bool?","datePublished":"2022-12-08T20:30:55+00:00","mainEntityOfPage":{"@id":"https:\/\/jassweb.com\/solved\/solved-is-it-possible-to-have-dictionary-where-keys-are-of-type-bool\/"},"wordCount":191,"publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"keywords":["c++","collections","dictionary"],"articleSection":["Solved"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/jassweb.com\/solved\/solved-is-it-possible-to-have-dictionary-where-keys-are-of-type-bool\/","url":"https:\/\/jassweb.com\/solved\/solved-is-it-possible-to-have-dictionary-where-keys-are-of-type-bool\/","name":"[Solved] Is it possible to have dictionary where keys are of type bool? - JassWeb","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/#website"},"datePublished":"2022-12-08T20:30:55+00:00","breadcrumb":{"@id":"https:\/\/jassweb.com\/solved\/solved-is-it-possible-to-have-dictionary-where-keys-are-of-type-bool\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jassweb.com\/solved\/solved-is-it-possible-to-have-dictionary-where-keys-are-of-type-bool\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/jassweb.com\/solved\/solved-is-it-possible-to-have-dictionary-where-keys-are-of-type-bool\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jassweb.com\/solved\/"},{"@type":"ListItem","position":2,"name":"[Solved] Is it possible to have dictionary where keys are of type bool?"}]},{"@type":"WebSite","@id":"https:\/\/jassweb.com\/solved\/#website","url":"https:\/\/jassweb.com\/solved\/","name":"JassWeb","description":"Build High-quality Websites","publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jassweb.com\/solved\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/jassweb.com\/solved\/#organization","name":"Jass Web","url":"https:\/\/jassweb.com\/solved\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/","url":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","contentUrl":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","width":693,"height":132,"caption":"Jass Web"},"image":{"@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31","name":"Kirat","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/","url":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775798750","contentUrl":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775798750","caption":"Kirat"},"sameAs":["http:\/\/jassweb.com"],"url":"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/"}]}},"_links":{"self":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/25262","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/comments?post=25262"}],"version-history":[{"count":0,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/25262\/revisions"}],"wp:attachment":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/media?parent=25262"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/categories?post=25262"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/tags?post=25262"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}