{"id":2514,"date":"2017-02-02T13:42:17","date_gmt":"2017-02-02T13:42:16","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=2514"},"modified":"2025-06-13T19:29:27","modified_gmt":"2025-06-14T02:29:27","slug":"net-core-list-queue-and-dictionary-data-structures-backed-by-couchbase","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/es\/net-core-list-queue-and-dictionary-data-structures-backed-by-couchbase\/","title":{"rendered":"Estructuras de datos de listas, colas y diccionarios de .NET Core respaldadas por Couchbase"},"content":{"rendered":"<div id=\"preamble\">\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>La adici\u00f3n del <a href=\"https:\/\/docs.couchbase.com\/server\/current\/learn\/data\/data.html\">subdocumento API<\/a> a Couchbase 4.5 ha allanado el camino para un soporte eficiente de estructuras de datos en <a href=\"https:\/\/www.couchbase.com\/blog\/es\/developers\/?utm_source=blogs&amp;utm_medium=link&amp;utm_campaign=blogs\">Couchbase<\/a>.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>En esta entrada de blog, voy a mostrar una demostraci\u00f3n de tres tipos de estructuras de datos que puedes utilizar con el SDK .NET de Couchbase:<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li>List - una lista de objetos, b\u00e1sicamente una lista respaldada por Couchbase<\/li>\n<li>Queue - una cola de objetos, b\u00e1sicamente una cola respaldada por Couchbase<\/li>\n<li>Dictionary - un diccionario de objetos, b\u00e1sicamente un Dictionary respaldado por Couchbase<\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph\">\n<p>Tambi\u00e9n hablar\u00e9 un poco de c\u00f3mo funciona entre bastidores.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Si quieres, puedes seguir el juego en casa. El c\u00f3digo fuente de este blog es <a href=\"https:\/\/github.com\/couchbaselabs\/blog-source-code\/tree\/master\/Groves\/050DataStructuresDotNet\/src\">disponible en GitHub<\/a>y <a href=\"https:\/\/www.couchbase.com\/blog\/es\/downloads\/\">La descarga de Couchbase Server es gratuita<\/a> (actualmente hay versiones preliminares para desarrolladores de la versi\u00f3n 5 disponibles mensualmente).<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"truelist\">Lista<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>Una Lista es una estructura de datos .NET que se guarda en memoria. Con las estructuras de datos proporcionadas por el SDK .NET de Couchbase, puedes almacenarla en un documento de Couchbase.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Para crear una lista respaldada por Couchbase:<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlightjs highlight\"><code class=\"language-C#\">var list = new CouchbaseList(bucket, \"myList\");<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>La cadena \"miLista\" corresponde a la clave del documento que contendr\u00e1 la lista. Cuando utilice <code>CouchbaseList<\/code>se crear\u00e1 un \u00fanico documento con esa clave (si no existe ya). Si ya existe un documento con esa clave, <code>CouchbaseList<\/code> lo utilizar\u00e1.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Ahora puede a\u00f1adir\/eliminar elementos de la lista y todo se guardar\u00e1 en el documento. Tambi\u00e9n puede realizar otras operaciones como obtener un recuento de los elementos de la lista.<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlightjs highlight\"><code class=\"language-C#\">\/\/ add 10 objects to the list\r\nfor(var i = 0; i &lt; 10; i++)\r\n    list.Add(new { num = i, foo = \"bar\" + Guid.NewGuid()});\r\n\r\n\/\/ remove an item from the list by index\r\nlist.RemoveAt(5);\r\n\r\n\/\/ show an item from the list by index\r\nvar item = list[5];\r\nConsole.WriteLine(\"5th item in the list: \" + item.foo + \" \/ \" + item.num);<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>El c\u00f3digo anterior dar\u00eda como resultado un documento con una clave \"miLista\" con el siguiente aspecto. Note que el \u00edtem con num de 5 no est\u00e1 listado, porque fue removido.<\/p>\n<p>Hay algo sutil en el ejemplo anterior que conviene se\u00f1alar. F\u00edjese en que he utilizado <code>var item = lista[5];<\/code> y luego <code>item.foo<\/code> y <code>item.num<\/code> en el <code>WriteLine<\/code>. Si utilizara <code>lista[5].foo<\/code> y <code>lista[5].num<\/code> directamente, eso resultar\u00eda en dos llamadas diferentes de subdocumento a Couchbase. Esto no s\u00f3lo es menos que una eficiencia \u00f3ptima, sino que es posible que los valores cambien entre las dos llamadas.<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlightjs highlight\"><code class=\"language-JavaScript\">[\r\n  {\r\n    \"num\": 0,\r\n    \"foo\": \"bara1fd74ee-a790-4a0f-843c-abe449cb8b1d\"\r\n  },\r\n  {\r\n    \"num\": 1,\r\n    \"foo\": \"bardc1d8f9a-4e93-46f9-b8ae-ec036743869e\"\r\n  },\r\n  {\r\n    \"num\": 2,\r\n    \"foo\": \"bar9a60abe9-1e04-4fba-bd1f-f1ec39d69f56\"\r\n  },\r\n  {\r\n    \"num\": 3,\r\n    \"foo\": \"bar9566605b-7abf-4a0c-aa9d-63b98ce86274\"\r\n  },\r\n  {\r\n    \"num\": 4,\r\n    \"foo\": \"bar6261323f-de50-42a7-a8a7-6fcafb356deb\"\r\n  },\r\n  {\r\n    \"num\": 6,\r\n    \"foo\": \"bar13832bcb-2aa0-491a-a01f-1d496f999ffc\"\r\n  },\r\n\r\n  \/\/ ... etc ...\r\n]<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"truequeue\">Cola<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>Muy similar a List, puedes crear una cola respaldada por Couchbase:<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlightjs highlight\"><code class=\"language-C#\">var queue = new CouchbaseQueue(bucket, \"myQueue\");<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>Una cola se almacena igual que una lista. La diferencia es que el orden es significativo, y esto se refleja en las operaciones que se realizan en una cola: Encolar y Descolarizar.<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlightjs highlight\"><code class=\"language-C#\">for(var i = 0; i &lt; 3; i++)\r\n    queue.Enqueue(new { num = i, foo = \"baz\" + Guid.NewGuid()});\r\n\r\n\/\/ dequeue\r\nvar item = queue.Dequeue();\r\nConsole.WriteLine(\"item num \" + item.num + \" was dequeued. There are now \" + queue.Count + \" items left in the queue.\");<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>El c\u00f3digo anterior dar\u00eda como resultado un documento con una clave \"myQueue\" (ver JSON m\u00e1s abajo). Observe que no hay ning\u00fan objeto en la matriz con el n\u00famero \"0\" porque se ha retirado de la cola.<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlightjs highlight\"><code class=\"language-JavaScript\">[\r\n  {\r\n    \"num\": 1,\r\n    \"foo\": \"baz64bb62b6-bf23-4e52-b584-d2fa02accce6\"\r\n  },\r\n  {\r\n    \"num\": 2,\r\n    \"foo\": \"baz0a160bd9-aa7b-4c45-9e19-d1a3d982a554\"\r\n  }\r\n]<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"truedictionary\">Diccionario<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>Espero que ahora veas un patr\u00f3n. Para crear un diccionario:<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlightjs highlight\"><code class=\"language-C#\">var dict = new CouchbaseDictionary&lt;string,dynamic&gt;(bucket, \"myDict\");<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>De nuevo, se crear\u00e1 un documento con la clave dada. Las operaciones que se pueden realizar incluyen A\u00f1adir, Eliminar, y el indexador <code>[]<\/code> operaci\u00f3n.<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlightjs highlight\"><code class=\"language-C#\">for(var i = 0; i &lt; 5; i++)\r\n    dict.Add(\"key\" + Guid.NewGuid(), new { num = i, foo = \"qux\" + Guid.NewGuid()} );\r\n\r\n\/\/ print out keys in the dictionary\r\nConsole.WriteLine(\"There are \" + dict.Keys.Count + \" keys in the dictionary.\");\r\nforeach(var key in dict.Keys)\r\n    Console.WriteLine(\"key: \" + key + \", value.num: \" + dict[key].num);<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>Un documento de diccionario tiene este aspecto:<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlightjs highlight\"><code class=\"language-JavaScript\">{\r\n  \"key5aa2520d-123c-4fca-b444-b0cb8846d46e\": {\r\n    \"num\": 0,\r\n    \"foo\": \"qux93b197dc-f175-4246-a38d-7b080eb9bea0\"\r\n  },\r\n  \"key55dee298-14c6-4da7-97a8-66c69d7e8a70\": {\r\n    \"num\": 1,\r\n    \"foo\": \"quxa593ee4c-682c-402d-887b-3f09f029e9b6\"\r\n  },\r\n  \"key3386afcf-7b70-4e4d-b9ae-6defbca33fe7\": {\r\n    \"num\": 2,\r\n    \"foo\": \"qux1259ae94-1008-4e1f-86a1-bfbd0873b09b\"\r\n  },\r\n  \"key2bc8c451-f125-4282-9fb4-7ea15f4b3168\": {\r\n    \"num\": 3,\r\n    \"foo\": \"qux1b6fb62b-9918-46dc-9a2f-610a55d017ef\"\r\n  },\r\n  \"key3f7041f3-abd3-49c7-a373-454cbd2ac0fc\": {\r\n    \"num\": 4,\r\n    \"foo\": \"qux0a87655f-197d-4fb2-8a54-b1de6e288de4\"\r\n  }\r\n}<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>Una nota sobre la din\u00e1mica C#: he utilizado <code>din\u00e1mico<\/code> para que los ejemplos de c\u00f3digo sean breves y sencillos. En tu aplicaci\u00f3n, probablemente sea mejor que utilices un tipo C# real definido. Todo se serializa a JSON en Couchbase, por supuesto.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"truebehind-the-scenes\">Entre bastidores<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>Antes de que se lanzara la API de subdocumentos en Couchbase Server 4.5, estas estructuras de datos eran <em>posible<\/em>Por supuesto. El problema era que se cargaba todo el documento, se pon\u00eda en una lista, se hac\u00edan cambios en la lista y luego se guardaba todo el documento. Si tienes grandes estructuras de datos, pero s\u00f3lo est\u00e1s leyendo o haciendo cambios en un solo elemento, esto a menudo resulta en una p\u00e9rdida de tiempo y ancho de banda y, posiblemente, un aumento de la contenci\u00f3n.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>El subdocumento-API (que puede utilizar directamente; lo cubr\u00ed en la secci\u00f3n <a href=\"https:\/\/www.couchbase.com\/blog\/es\/sub-document-api-in-couchbase-server-4.5-with-the-.net-sdk-revisted\/\">API de subdocumentos en Couchbase Server 4.5 con el SDK .NET (revisado)<\/a> blog post) se utiliza entre bastidores en <code>CouchbaseList<\/code>, <code>CouchbaseQueue<\/code>y <code>CouchbaseDictionary<\/code>. As\u00ed, cuando se a\u00f1ade un elemento a un <code>CouchbaseList<\/code>por ejemplo, s\u00f3lo se env\u00eda por cable ese elemento, no toda la lista.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Algunas operaciones necesitar\u00e1n obtener el documento completo. Por ejemplo, iterar a trav\u00e9s de una colecci\u00f3n utilizando una funci\u00f3n <code>foreach<\/code> recuperar\u00e1 el documento completo. Al eliminar un elemento de la lista, se escanear\u00e1 el documento completo. Pero si en el futuro surgen operaciones con subdocumentos que admitan esas acciones, las implementaciones del SDK se actualizar\u00e1n en consecuencia.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"truesummary\">Resumen<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>Estas estructuras de datos son otra herramienta para ayudarle a gestionar sus datos. Dado que utilizan la API de subdocumentos, suelen ser m\u00e1s eficaces que un enfoque basado en documentos completos. Para obtener m\u00e1s informaci\u00f3n, consulte la p\u00e1gina <a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/current\/sdk\/dotnet\/datastructures.html?utm_source=blogs&amp;utm_medium=link&amp;utm_campaign=blogs\">Documentaci\u00f3n sobre estructuras de datos<\/a>.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u00bfTiene preguntas? \u00bfAlg\u00fan comentario? \u00bfNecesita ayuda? <a href=\"https:\/\/www.couchbase.com\/blog\/es\/forums\/?utm_source=blogs&amp;utm_medium=link&amp;utm_campaign=blogs\">Visite nuestros foros<\/a>env\u00edame un mensaje a <a href=\"https:\/\/twitter.com\/mgroves\">Twitter @mgroves<\/a>o deja un comentario.<\/p>\n<\/div>\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>The addition of the sub-document API to Couchbase 4.5 has paved the way for efficient data structure support in Couchbase. In this blog post, I\u2019m going to show a demo of three types of data structures you can use with [&hellip;]<\/p>","protected":false},"author":71,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1811,1816,1819],"tags":[1447,1800],"ppma_author":[8937],"class_list":["post-2514","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dotnet","category-couchbase-server","category-data-modeling","tag-data-modeling","tag-data-structures"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.0 (Yoast SEO v26.0) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>.NET Core List, Queue, and Dictionary Data Structures backed by Couchbase - The Couchbase Blog<\/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:\/\/www.couchbase.com\/blog\/es\/net-core-list-queue-and-dictionary-data-structures-backed-by-couchbase\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\".NET Core List, Queue, and Dictionary Data Structures backed by Couchbase\" \/>\n<meta property=\"og:description\" content=\"The addition of the sub-document API to Couchbase 4.5 has paved the way for efficient data structure support in Couchbase. In this blog post, I\u2019m going to show a demo of three types of data structures you can use with [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/es\/net-core-list-queue-and-dictionary-data-structures-backed-by-couchbase\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-02-02T13:42:16+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T02:29:27+00:00\" \/>\n<meta name=\"author\" content=\"Matthew Groves\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@mgroves\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Matthew Groves\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/net-core-list-queue-and-dictionary-data-structures-backed-by-couchbase\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/net-core-list-queue-and-dictionary-data-structures-backed-by-couchbase\/\"},\"author\":{\"name\":\"Matthew Groves\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3929663e372020321b0152dc4fa65a58\"},\"headline\":\".NET Core List, Queue, and Dictionary Data Structures backed by Couchbase\",\"datePublished\":\"2017-02-02T13:42:16+00:00\",\"dateModified\":\"2025-06-14T02:29:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/net-core-list-queue-and-dictionary-data-structures-backed-by-couchbase\/\"},\"wordCount\":739,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/net-core-list-queue-and-dictionary-data-structures-backed-by-couchbase\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"keywords\":[\"Data Modeling\",\"Data structures\"],\"articleSection\":[\".NET\",\"Couchbase Server\",\"Data Modeling\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/net-core-list-queue-and-dictionary-data-structures-backed-by-couchbase\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/net-core-list-queue-and-dictionary-data-structures-backed-by-couchbase\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/net-core-list-queue-and-dictionary-data-structures-backed-by-couchbase\/\",\"name\":\".NET Core List, Queue, and Dictionary Data Structures backed by Couchbase - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/net-core-list-queue-and-dictionary-data-structures-backed-by-couchbase\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/net-core-list-queue-and-dictionary-data-structures-backed-by-couchbase\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2017-02-02T13:42:16+00:00\",\"dateModified\":\"2025-06-14T02:29:27+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/net-core-list-queue-and-dictionary-data-structures-backed-by-couchbase\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/net-core-list-queue-and-dictionary-data-structures-backed-by-couchbase\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/net-core-list-queue-and-dictionary-data-structures-backed-by-couchbase\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"width\":1800,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/net-core-list-queue-and-dictionary-data-structures-backed-by-couchbase\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\".NET Core List, Queue, and Dictionary Data Structures backed by Couchbase\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3929663e372020321b0152dc4fa65a58\",\"name\":\"Matthew Groves\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/ba51e6aacc53995c323a634e4502ef54\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g\",\"caption\":\"Matthew Groves\"},\"description\":\"Matthew D. Groves is a guy who loves to code. It doesn't matter if it's C#, jQuery, or PHP: he'll submit pull requests for anything. He has been coding professionally ever since he wrote a QuickBASIC point-of-sale app for his parent's pizza shop back in the 90s. He currently works as a Senior Product Marketing Manager for Couchbase. His free time is spent with his family, watching the Reds, and getting involved in the developer community. He is the author of AOP in .NET, Pro Microservices in .NET, a Pluralsight author, and a Microsoft MVP.\",\"sameAs\":[\"https:\/\/crosscuttingconcerns.com\",\"https:\/\/x.com\/mgroves\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/es\/author\/matthew-groves\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":".NET Core List, Queue, and Dictionary Data Structures backed by Couchbase - The Couchbase Blog","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:\/\/www.couchbase.com\/blog\/es\/net-core-list-queue-and-dictionary-data-structures-backed-by-couchbase\/","og_locale":"es_MX","og_type":"article","og_title":".NET Core List, Queue, and Dictionary Data Structures backed by Couchbase","og_description":"The addition of the sub-document API to Couchbase 4.5 has paved the way for efficient data structure support in Couchbase. In this blog post, I\u2019m going to show a demo of three types of data structures you can use with [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/es\/net-core-list-queue-and-dictionary-data-structures-backed-by-couchbase\/","og_site_name":"The Couchbase Blog","article_published_time":"2017-02-02T13:42:16+00:00","article_modified_time":"2025-06-14T02:29:27+00:00","author":"Matthew Groves","twitter_card":"summary_large_image","twitter_creator":"@mgroves","twitter_misc":{"Written by":"Matthew Groves","Est. reading time":"4 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/net-core-list-queue-and-dictionary-data-structures-backed-by-couchbase\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/net-core-list-queue-and-dictionary-data-structures-backed-by-couchbase\/"},"author":{"name":"Matthew Groves","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3929663e372020321b0152dc4fa65a58"},"headline":".NET Core List, Queue, and Dictionary Data Structures backed by Couchbase","datePublished":"2017-02-02T13:42:16+00:00","dateModified":"2025-06-14T02:29:27+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/net-core-list-queue-and-dictionary-data-structures-backed-by-couchbase\/"},"wordCount":739,"commentCount":2,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/net-core-list-queue-and-dictionary-data-structures-backed-by-couchbase\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","keywords":["Data Modeling","Data structures"],"articleSection":[".NET","Couchbase Server","Data Modeling"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/net-core-list-queue-and-dictionary-data-structures-backed-by-couchbase\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/net-core-list-queue-and-dictionary-data-structures-backed-by-couchbase\/","url":"https:\/\/www.couchbase.com\/blog\/net-core-list-queue-and-dictionary-data-structures-backed-by-couchbase\/","name":".NET Core List, Queue, and Dictionary Data Structures backed by Couchbase - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/net-core-list-queue-and-dictionary-data-structures-backed-by-couchbase\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/net-core-list-queue-and-dictionary-data-structures-backed-by-couchbase\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2017-02-02T13:42:16+00:00","dateModified":"2025-06-14T02:29:27+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/net-core-list-queue-and-dictionary-data-structures-backed-by-couchbase\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/net-core-list-queue-and-dictionary-data-structures-backed-by-couchbase\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/net-core-list-queue-and-dictionary-data-structures-backed-by-couchbase\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","width":1800,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/net-core-list-queue-and-dictionary-data-structures-backed-by-couchbase\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":".NET Core List, Queue, and Dictionary Data Structures backed by Couchbase"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"El blog de Couchbase","description":"Couchbase, la base de datos NoSQL","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"El blog de Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3929663e372020321b0152dc4fa65a58","name":"Matthew Groves","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/ba51e6aacc53995c323a634e4502ef54","url":"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g","caption":"Matthew Groves"},"description":"A Matthew D. Groves le encanta programar. No importa si se trata de C#, jQuery o PHP: enviar\u00e1 pull requests para cualquier cosa. Lleva codificando profesionalmente desde que escribi\u00f3 una aplicaci\u00f3n de punto de venta en QuickBASIC para la pizzer\u00eda de sus padres, all\u00e1 por los a\u00f1os noventa. Actualmente trabaja como Director de Marketing de Producto para Couchbase. Su tiempo libre lo pasa con su familia, viendo a los Reds y participando en la comunidad de desarrolladores. Es autor de AOP in .NET, Pro Microservices in .NET, autor de Pluralsight y MVP de Microsoft.","sameAs":["https:\/\/crosscuttingconcerns.com","https:\/\/x.com\/mgroves"],"url":"https:\/\/www.couchbase.com\/blog\/es\/author\/matthew-groves\/"}]}},"authors":[{"term_id":8937,"user_id":71,"is_guest":0,"slug":"matthew-groves","display_name":"Matthew Groves","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g","author_category":"","last_name":"Groves","first_name":"Matthew","job_title":"","user_url":"https:\/\/crosscuttingconcerns.com","description":"A Matthew D. Groves le encanta programar.  No importa si se trata de C#, jQuery o PHP: enviar\u00e1 pull requests para cualquier cosa.  Lleva codificando profesionalmente desde que escribi\u00f3 una aplicaci\u00f3n de punto de venta en QuickBASIC para la pizzer\u00eda de sus padres, all\u00e1 por los a\u00f1os noventa.  Actualmente trabaja como Director de Marketing de Producto para Couchbase. Su tiempo libre lo pasa con su familia, viendo a los Reds y participando en la comunidad de desarrolladores.  Es autor de AOP in .NET, Pro Microservices in .NET, autor de Pluralsight y MVP de Microsoft."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/2514","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/users\/71"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=2514"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/2514\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=2514"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=2514"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=2514"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=2514"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}