{"id":117061,"date":"2024-06-14T08:27:12","date_gmt":"2024-06-14T06:27:12","guid":{"rendered":"https:\/\/code-maze.com\/?p=117061"},"modified":"2024-06-14T08:27:12","modified_gmt":"2024-06-14T06:27:12","slug":"csharp-using-the-except-method-in-linq","status":"publish","type":"post","link":"https:\/\/code-maze.com\/csharp-using-the-except-method-in-linq\/","title":{"rendered":"Find Differences Between Collections With the LINQ Except Method in C#"},"content":{"rendered":"<p>When working with collections in C#, we sometimes need to manipulate them by performing operations such as comparisons, mergers, or finding set differences between them. The LINQ Except method comes in handy when we want to find the set difference between two sequences, as it returns a new sequence containing elements in the first sequence that are not in the second sequence. In this article, we will learn how the Except method works in LINQ and how to apply it in real-world scenarios.\u00a0<\/p>\n<div style=\"padding: 20px; border-left: 5px #dc2323 solid; display: block; margin-bottom: 20px; box-shadow: 1px 1px 5px 0px lightgrey;\">To download the source code for this article, you can visit our <a href=\"https:\/\/github.com\/CodeMazeBlog\/CodeMazeGuides\/tree\/main\/csharp-linq\/UsingExceptInCSharp\" target=\"_blank\" rel=\"nofollow noopener\">GitHub repository<\/a>.<\/div>\n<p>Let&#8217;s understand how the LINQ Except method works in C# without further ado!<\/p>\n<h2><a id=\"except\"><\/a>Extract Differences With the LINQ Except Method<\/h2>\n<p>We are going to use a complex type, such as an <code>Employee<\/code> class, for our examples:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\">List&lt;Employee&gt; employees = new() \r\n{\r\n    new Employee {ID = 1, Name = \"John Doe\", Age = 28, Department = \"Sales\"},\r\n    new Employee {ID = 2, Name = \"Emily Sanders\", Age = 29, Department = \"Sales\"},\r\n    new Employee {ID = 3, Name = \"Benjamin Winters\", Age = 30, Department = \"Sales\"},\r\n    new Employee {ID = 4, Name = \"Sheila Foxx\", Age = 31, Department = \"Marketing\"},\r\n    new Employee {ID = 5, Name = \"Alexander Flemming\", Age = 31, Department = \"Marketing\"},\r\n    new Employee {ID = 6, Name = \"Grace Jones\", Age = 32, Department = \"IT\"},\r\n    new Employee {ID = 7, Name = \"Ava Knowles\", Age = 32, Department = \"IT\"},\r\n    new Employee {ID = 8, Name = \"Isabela Wambui\", Age = 48, Department = \"Marketing\"},\r\n    new Employee {ID = 9, Name = \"David Otieno\", Age = 60, Department = \"HR\"},\r\n    new Employee {ID = 10, Name = \"Emma Charlotte\", Age = 33, Department = \"HR\"},\r\n    new Employee {ID = 11, Name = \"Michael Bay\", Age = 34, Department = \"HR\"},\r\n    new Employee {ID = 12, Name = \"Mary Jane\", Age = 35, Department = \"Sales\"}\r\n};<\/pre>\n<p>Let&#8217;s assume we want to get a list of employees not in sales using <code>Except()<\/code>:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\">var empNotInSales = employees.Except(employees.Where(e =&gt; e.Department.Equals(\"Sales\"))).ToList();\r\n\r\nreturn empNotInSales;<\/pre>\n<p>First, we find the set difference by returning elements from <code>Employees<\/code> that are not in the sales department, which helps us achieve our goal. <strong>Note that when one of the sequences we are comparing is null, a <\/strong><code>System.ArgumentNullException<\/code><strong> will be thrown.\u00a0<\/strong><\/p>\n<p>In this example, we made use of one of the overloads, <code>Except&lt;TSource&gt;(IQueryable&lt;TSource&gt;, IEnumerable&lt;TSource&gt;)<\/code>. Next, let&#8217;s implement an overload that adds an <code>IEqualityComparer<\/code> object.\u00a0<\/p>\n<h2><a id=\"IEqualityComparer\"><\/a>How to Use IEqualityComparer Comparer With the LINQ Except Method in C#<\/h2>\n<p>Sometimes, we may want to perform a set difference between two string sequences with different casing.<\/p>\n<p>Let&#8217;s assume we have a list of employees in the IT department with employee names in lowercase:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\">List&lt;Employee&gt; employeesIT = new()\r\n{\r\n    new Employee {ID = 6, Name = \"grace jones\", Age = 32, Department = \"IT\"},\r\n    new Employee {ID = 7, Name = \"ava knowles\", Age = 32, Department = \"IT\"}\r\n};<\/pre>\n<p>The default comparator object is case sensitive; therefore, when we want to retrieve a list of employees not in the IT department, Ava and Grace will still be returned if we use it.\u00a0<\/p>\n<p>Let&#8217;s implement an example with our list of employees to perform the set difference of their names while ignoring their case sensitivity:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\">var employeesNotInIT = employees.Select(e =&gt; e.Name)\r\n     .Except(employeesIT.Select(s =&gt; s.Name), StringComparer.OrdinalIgnoreCase).ToList();\r\n\r\nreturn employeesNotInIT;<\/pre>\n<p>Here, we pass <code>StringComparer.OrdinalIgnoreCase<\/code> as an argument to return the list of employees not in the IT department, regardless of their case. <code>StringComparer<\/code> already implements the <code>IEqualityComparer<\/code> interface, which helps us control how we compare string values.\u00a0<\/p>\n<p>Next, let&#8217;s learn how to implement the <code>IEqualityComparer<\/code> interface using our <code>Employee<\/code> class example.\u00a0<\/p>\n<h2><a id=\"equals\"><\/a>Custom IEqualityComparer Implementation<\/h2>\n<p>In some cases, we may wish to have more granular control over performing set differences between two sequences, especially for complex types. Let&#8217;s implement the interface using our <code>Employee<\/code> class example to understand how the interface works:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\">public class EmployeeComparer : IEqualityComparer&lt;Employee&gt;\r\n{\r\n    public bool Equals(Employee? x, Employee? y)\r\n    {\r\n        if (x is null &amp;&amp; y is null) return true;\r\n        if (x is null || y is null) return false;\r\n\r\n        return x.ID == y.ID &amp;&amp; x.Name == y.Name &amp;&amp; x.Age == y.Age &amp;&amp; x.Department == y.Department;\r\n    }\r\n\r\n    public int GetHashCode([DisallowNull] Employee obj)\r\n    {\r\n        var hashID = obj.ID.GetHashCode();\r\n        var hashName = obj.Name.GetHashCode();\r\n\r\n        return hashID ^ hashName;\r\n    }\r\n}<\/pre>\n<p>The <code>Equals()<\/code> method checks whether two <code>Employee<\/code> objects are equal. First, we check whether both objects have the same object reference and return <code>true<\/code>. Next, we check if any of the objects have null object references and return <code>false<\/code>. Finally, we compare each of the properties in our <code>Employee<\/code> class for equality.\u00a0<\/p>\n<p>On the other hand, the <code>GetHashCode()<\/code> method implementation calculates the hash codes for the <code>ID<\/code> and <code>Name<\/code> properties of the <code>Employee<\/code> object. Afterward, we perform an XOR operation to get a combined hash value, which can be useful when we want to use it as a key in hash-based collections such as <a href=\"https:\/\/code-maze.com\/csharp-generic-list-dictionary\/\" target=\"_blank\" rel=\"noopener\">dictionaries<\/a>.\u00a0<\/p>\n<p>We can now achieve the same objective as our previous <a href=\"#except\">example<\/a>:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\">EmployeeComparer comparer = new ();\r\n\r\nvar employeesInSales = employees.Where(e =&gt; e.Department.Equals(\"Sales\")).ToList();\r\n\r\nreturn employees.Except(employeesInSales, comparer).ToList();<\/pre>\n<p>This time, when we call the <code>Except()<\/code> method, our custom implementation of the <code>Equals()<\/code> method will be used.<\/p>\n<h2><a id=\"when-to-use\"><\/a>When to Use LINQ Except Method<\/h2>\n<p><strong>We can use <code>Except()<\/code> when we want to retrieve unique sequences of elements, as it returns a new sequence after performing the set difference between two sequences.\u00a0<\/strong><\/p>\n<p>Beyond that, <strong>we can use <code>Except()<\/code> when we want to track changes between two sequences.<\/strong> For example, when we add a new <code>Employee<\/code> record, we can track changes between two lists, forming the basis for tasks such as incremental backups and audit trails.\u00a0<\/p>\n<p><strong>Finally, note that <\/strong><code>Except()<\/code><strong> does not make any changes to the original sequences but returns a new instance containing distinct elements. Also, the operation retains the same order of elements as in the first sequence.\u00a0<\/strong><\/p>\n<h2><a id=\"conclusion\"><\/a>Conclusion<\/h2>\n<p>In this article, we learned how to use the Except method in LINQ. We can leverage this method to find the set difference of both simple and complex types. When we need greater control over comparing elements, we can leverage the <a href=\"#equals\">IEqualityComparer<\/a> interface.\u00a0<\/p>\n","protected":false},"excerpt":{"rendered":"<p>When working with collections in C#, we sometimes need to manipulate them by performing operations such as comparisons, mergers, or finding set differences between them. The LINQ Except method comes in handy when we want to find the set difference between two sequences, as it returns a new sequence containing elements in the first sequence [&hellip;]<\/p>\n","protected":false},"author":86,"featured_media":62189,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"categories":[12,1233],"tags":[1415,2212,1950,2210,2211,544],"class_list":["post-117061","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-csharp","category-linq","tag-comparison","tag-difference","tag-equality","tag-except","tag-iequalitycomparer","tag-linq","et-has-post-format-content","et_post_format-et-post-format-standard"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Find Differences In Collections With the LINQ Except Method in C#<\/title>\n<meta name=\"description\" content=\"The article discusses how to use the Except Method in LINQ. We discuss how to leverage it to find differences in collections in C#.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/code-maze.com\/csharp-using-the-except-method-in-linq\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Find Differences In Collections With the LINQ Except Method in C#\" \/>\n<meta property=\"og:description\" content=\"The article discusses how to use the Except Method in LINQ. We discuss how to leverage it to find differences in collections in C#.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/code-maze.com\/csharp-using-the-except-method-in-linq\/\" \/>\n<meta property=\"og:site_name\" content=\"Code Maze\" \/>\n<meta property=\"article:published_time\" content=\"2024-06-14T06:27:12+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/code-maze.com\/wp-content\/uploads\/2021\/12\/social-csharp.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1100\" \/>\n\t<meta property=\"og:image:height\" content=\"620\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Martin Chege\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@CodeMazeBlog\" \/>\n<meta name=\"twitter:site\" content=\"@CodeMazeBlog\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Martin Chege\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":[\"Article\",\"BlogPosting\"],\"@id\":\"https:\/\/code-maze.com\/csharp-using-the-except-method-in-linq\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/code-maze.com\/csharp-using-the-except-method-in-linq\/\"},\"author\":{\"name\":\"Martin Chege\",\"@id\":\"https:\/\/code-maze.com\/#\/schema\/person\/8daa4ece00dab067188d2269f4ab2985\"},\"headline\":\"Find Differences Between Collections With the LINQ Except Method in C#\",\"datePublished\":\"2024-06-14T06:27:12+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/code-maze.com\/csharp-using-the-except-method-in-linq\/\"},\"wordCount\":682,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/code-maze.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/code-maze.com\/csharp-using-the-except-method-in-linq\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/code-maze.com\/wp-content\/uploads\/2021\/12\/social-csharp.png\",\"keywords\":[\"Comparison\",\"difference\",\"equality\",\"except\",\"IEqualityComparer\",\"LINQ\"],\"articleSection\":[\"C#\",\"LINQ\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/code-maze.com\/csharp-using-the-except-method-in-linq\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/code-maze.com\/csharp-using-the-except-method-in-linq\/\",\"url\":\"https:\/\/code-maze.com\/csharp-using-the-except-method-in-linq\/\",\"name\":\"Find Differences In Collections With the LINQ Except Method in C#\",\"isPartOf\":{\"@id\":\"https:\/\/code-maze.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/code-maze.com\/csharp-using-the-except-method-in-linq\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/code-maze.com\/csharp-using-the-except-method-in-linq\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/code-maze.com\/wp-content\/uploads\/2021\/12\/social-csharp.png\",\"datePublished\":\"2024-06-14T06:27:12+00:00\",\"description\":\"The article discusses how to use the Except Method in LINQ. We discuss how to leverage it to find differences in collections in C#.\",\"breadcrumb\":{\"@id\":\"https:\/\/code-maze.com\/csharp-using-the-except-method-in-linq\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/code-maze.com\/csharp-using-the-except-method-in-linq\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/code-maze.com\/csharp-using-the-except-method-in-linq\/#primaryimage\",\"url\":\"https:\/\/code-maze.com\/wp-content\/uploads\/2021\/12\/social-csharp.png\",\"contentUrl\":\"https:\/\/code-maze.com\/wp-content\/uploads\/2021\/12\/social-csharp.png\",\"width\":1100,\"height\":620,\"caption\":\"C# Development\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/code-maze.com\/csharp-using-the-except-method-in-linq\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/code-maze.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Find Differences Between Collections With the LINQ Except Method in C#\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/code-maze.com\/#website\",\"url\":\"https:\/\/code-maze.com\/\",\"name\":\"Code Maze\",\"description\":\"Learn. Code. Succeed.\",\"publisher\":{\"@id\":\"https:\/\/code-maze.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/code-maze.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/code-maze.com\/#organization\",\"name\":\"Code Maze\",\"url\":\"https:\/\/code-maze.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/code-maze.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/code-maze.com\/wp-content\/uploads\/2020\/01\/Code-Maze-Only-Logo-Transparent-HRez.png\",\"contentUrl\":\"https:\/\/code-maze.com\/wp-content\/uploads\/2020\/01\/Code-Maze-Only-Logo-Transparent-HRez.png\",\"width\":3511,\"height\":3510,\"caption\":\"Code Maze\"},\"image\":{\"@id\":\"https:\/\/code-maze.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/CodeMazeBlog\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/code-maze.com\/#\/schema\/person\/8daa4ece00dab067188d2269f4ab2985\",\"name\":\"Martin Chege\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/code-maze.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/code-maze.com\/wp-content\/uploads\/2024\/05\/Martin-Chege-400px-150x150.png\",\"contentUrl\":\"https:\/\/code-maze.com\/wp-content\/uploads\/2024\/05\/Martin-Chege-400px-150x150.png\",\"caption\":\"Martin Chege\"},\"description\":\"Martin has over seven years of experience designing, and developing .NET web applications. His experience includes building electronic health record systems. Besides his every-day job as a cyber security professional, he enjoys learning new technologies and contributing to discussion forums.\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/martin-c-02554872\/\"],\"url\":\"https:\/\/code-maze.com\/author\/martinchege\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Find Differences In Collections With the LINQ Except Method in C#","description":"The article discusses how to use the Except Method in LINQ. We discuss how to leverage it to find differences in collections in C#.","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:\/\/code-maze.com\/csharp-using-the-except-method-in-linq\/","og_locale":"en_US","og_type":"article","og_title":"Find Differences In Collections With the LINQ Except Method in C#","og_description":"The article discusses how to use the Except Method in LINQ. We discuss how to leverage it to find differences in collections in C#.","og_url":"https:\/\/code-maze.com\/csharp-using-the-except-method-in-linq\/","og_site_name":"Code Maze","article_published_time":"2024-06-14T06:27:12+00:00","og_image":[{"width":1100,"height":620,"url":"https:\/\/code-maze.com\/wp-content\/uploads\/2021\/12\/social-csharp.png","type":"image\/png"}],"author":"Martin Chege","twitter_card":"summary_large_image","twitter_creator":"@CodeMazeBlog","twitter_site":"@CodeMazeBlog","twitter_misc":{"Written by":"Martin Chege","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":["Article","BlogPosting"],"@id":"https:\/\/code-maze.com\/csharp-using-the-except-method-in-linq\/#article","isPartOf":{"@id":"https:\/\/code-maze.com\/csharp-using-the-except-method-in-linq\/"},"author":{"name":"Martin Chege","@id":"https:\/\/code-maze.com\/#\/schema\/person\/8daa4ece00dab067188d2269f4ab2985"},"headline":"Find Differences Between Collections With the LINQ Except Method in C#","datePublished":"2024-06-14T06:27:12+00:00","mainEntityOfPage":{"@id":"https:\/\/code-maze.com\/csharp-using-the-except-method-in-linq\/"},"wordCount":682,"commentCount":0,"publisher":{"@id":"https:\/\/code-maze.com\/#organization"},"image":{"@id":"https:\/\/code-maze.com\/csharp-using-the-except-method-in-linq\/#primaryimage"},"thumbnailUrl":"https:\/\/code-maze.com\/wp-content\/uploads\/2021\/12\/social-csharp.png","keywords":["Comparison","difference","equality","except","IEqualityComparer","LINQ"],"articleSection":["C#","LINQ"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/code-maze.com\/csharp-using-the-except-method-in-linq\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/code-maze.com\/csharp-using-the-except-method-in-linq\/","url":"https:\/\/code-maze.com\/csharp-using-the-except-method-in-linq\/","name":"Find Differences In Collections With the LINQ Except Method in C#","isPartOf":{"@id":"https:\/\/code-maze.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/code-maze.com\/csharp-using-the-except-method-in-linq\/#primaryimage"},"image":{"@id":"https:\/\/code-maze.com\/csharp-using-the-except-method-in-linq\/#primaryimage"},"thumbnailUrl":"https:\/\/code-maze.com\/wp-content\/uploads\/2021\/12\/social-csharp.png","datePublished":"2024-06-14T06:27:12+00:00","description":"The article discusses how to use the Except Method in LINQ. We discuss how to leverage it to find differences in collections in C#.","breadcrumb":{"@id":"https:\/\/code-maze.com\/csharp-using-the-except-method-in-linq\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/code-maze.com\/csharp-using-the-except-method-in-linq\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/code-maze.com\/csharp-using-the-except-method-in-linq\/#primaryimage","url":"https:\/\/code-maze.com\/wp-content\/uploads\/2021\/12\/social-csharp.png","contentUrl":"https:\/\/code-maze.com\/wp-content\/uploads\/2021\/12\/social-csharp.png","width":1100,"height":620,"caption":"C# Development"},{"@type":"BreadcrumbList","@id":"https:\/\/code-maze.com\/csharp-using-the-except-method-in-linq\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/code-maze.com\/"},{"@type":"ListItem","position":2,"name":"Find Differences Between Collections With the LINQ Except Method in C#"}]},{"@type":"WebSite","@id":"https:\/\/code-maze.com\/#website","url":"https:\/\/code-maze.com\/","name":"Code Maze","description":"Learn. Code. Succeed.","publisher":{"@id":"https:\/\/code-maze.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/code-maze.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/code-maze.com\/#organization","name":"Code Maze","url":"https:\/\/code-maze.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/code-maze.com\/#\/schema\/logo\/image\/","url":"https:\/\/code-maze.com\/wp-content\/uploads\/2020\/01\/Code-Maze-Only-Logo-Transparent-HRez.png","contentUrl":"https:\/\/code-maze.com\/wp-content\/uploads\/2020\/01\/Code-Maze-Only-Logo-Transparent-HRez.png","width":3511,"height":3510,"caption":"Code Maze"},"image":{"@id":"https:\/\/code-maze.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/CodeMazeBlog"]},{"@type":"Person","@id":"https:\/\/code-maze.com\/#\/schema\/person\/8daa4ece00dab067188d2269f4ab2985","name":"Martin Chege","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/code-maze.com\/#\/schema\/person\/image\/","url":"https:\/\/code-maze.com\/wp-content\/uploads\/2024\/05\/Martin-Chege-400px-150x150.png","contentUrl":"https:\/\/code-maze.com\/wp-content\/uploads\/2024\/05\/Martin-Chege-400px-150x150.png","caption":"Martin Chege"},"description":"Martin has over seven years of experience designing, and developing .NET web applications. His experience includes building electronic health record systems. Besides his every-day job as a cyber security professional, he enjoys learning new technologies and contributing to discussion forums.","sameAs":["https:\/\/www.linkedin.com\/in\/martin-c-02554872\/"],"url":"https:\/\/code-maze.com\/author\/martinchege\/"}]}},"_links":{"self":[{"href":"https:\/\/code-maze.com\/wp-json\/wp\/v2\/posts\/117061","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/code-maze.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/code-maze.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/code-maze.com\/wp-json\/wp\/v2\/users\/86"}],"replies":[{"embeddable":true,"href":"https:\/\/code-maze.com\/wp-json\/wp\/v2\/comments?post=117061"}],"version-history":[{"count":3,"href":"https:\/\/code-maze.com\/wp-json\/wp\/v2\/posts\/117061\/revisions"}],"predecessor-version":[{"id":117064,"href":"https:\/\/code-maze.com\/wp-json\/wp\/v2\/posts\/117061\/revisions\/117064"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/code-maze.com\/wp-json\/wp\/v2\/media\/62189"}],"wp:attachment":[{"href":"https:\/\/code-maze.com\/wp-json\/wp\/v2\/media?parent=117061"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/code-maze.com\/wp-json\/wp\/v2\/categories?post=117061"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/code-maze.com\/wp-json\/wp\/v2\/tags?post=117061"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}