{"id":439,"date":"2011-10-19T15:46:03","date_gmt":"2011-10-19T18:46:03","guid":{"rendered":"http:\/\/jonescarvalho.com\/?p=439"},"modified":"2020-05-13T20:55:22","modified_gmt":"2020-05-13T23:55:22","slug":"usando-delegate-em-list","status":"publish","type":"post","link":"https:\/\/jonescarvalho.com\/Blog\/?p=439","title":{"rendered":"Usando Delegate em List"},"content":{"rendered":"<p>Tive uma ideia onde dentro de uma lista, eu gostaria de remover um item sem precisar percorre-la verificando qual item \u00e9 o o item certo que quero remover.<\/p>\n<p>Exemplo:<br \/>\nSe tentarmos remover um item de uma lista enquanto estivermos iterando sobre a mesma, utilizando o foreach, uma exce\u00e7\u00e3o ser\u00e1 lan\u00e7ada, por exemplo:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\">private List&lt;string&gt; lista;\n\nlista = new List&lt;string&gt;();\n\nlista.Add(\u201cmaria\u201d);\n\nlista.Add(\u201cjo\u00e3o\u201d);\n\nlista.Add(\u201cZaN\u201d);\n\nforeach (string s in lista)\n\nlista.Remove(s);<\/pre>\n<p>O c\u00f3digo acima , lan\u00e7ara uma exce\u00e7\u00e3o, pois n\u00e3o se pode remover um item enquanto estamos percorrendo o mesmo.<br \/>\numa alternativa seria usar um m\u00e9todo da pr\u00f3pia lista o &#8220;Foreach&#8221;.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\">private List&lt;string&gt; lista;\n\nlista = new List&lt;string&gt;();\n\nlista.Add(\u201cmaria\u201d);\n\nlista.Add(\u201cjo\u00e3o\u201d);\n\nlista.Add(\u201cZaN\u201d);\n\nlista.ForEach(Action);\n}\n\nprivate void Action(string s)\n{\nif (s.Equals(\u201cZaN\u201d))lista.Remove(s);\n}<\/pre>\n<p>Podemos melhoras as coisas utilizando um delegate para remover o item escolhido. obs: em uma linha .. resolvemos isso.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\">lista.ForEach(delegate(string s) { if (s.Equals(\u201cZaN\u201d)) ls.Remove(s); });<\/pre>\n<p>claro que existem outras formas de se trabalhar com delegate, mas eu apenas estou mostrando um exemplo de onde podemos usar.<\/p>\n<p>at\u00e9 o proximo post!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Tive uma ideia onde dentro de uma lista, eu gostaria de remover um [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[7,9],"class_list":["post-439","post","type-post","status-publish","format-standard","hentry","category-dicas","tag-c","tag-delegate"],"_links":{"self":[{"href":"https:\/\/jonescarvalho.com\/Blog\/index.php?rest_route=\/wp\/v2\/posts\/439"}],"collection":[{"href":"https:\/\/jonescarvalho.com\/Blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jonescarvalho.com\/Blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jonescarvalho.com\/Blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jonescarvalho.com\/Blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=439"}],"version-history":[{"count":4,"href":"https:\/\/jonescarvalho.com\/Blog\/index.php?rest_route=\/wp\/v2\/posts\/439\/revisions"}],"predecessor-version":[{"id":858,"href":"https:\/\/jonescarvalho.com\/Blog\/index.php?rest_route=\/wp\/v2\/posts\/439\/revisions\/858"}],"wp:attachment":[{"href":"https:\/\/jonescarvalho.com\/Blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=439"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jonescarvalho.com\/Blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=439"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jonescarvalho.com\/Blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=439"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}