Sorry, this entry is only available in Português.
Tag Archives: Array
VBA – Ordenando Arrays Multi Dimensionais
Mais uma do fórum, dessa vez, da autoria do colega André.
O código abaixo faz a ordenação de um array multidimensional, incrementando um exemplo já colocado aqui no blog que fazia o trabalho, mas somente com em arrays com uma dimensão. Bom, o código e seus comentários falam por si:
'@Sort ArrayMulti '@Data: 04/08/2010 '@Autor: André Tonini ' Esta função ordena um array multidimensional ' Parametros ' @TheArray - Array - Array que será ordenado ' @Column - Integer - Por qual coluna o array será ordenado ' @ColumnCount - Integer - O número de colunas do array Public Function SortArrayMulti(ByRef TheArray As Variant, _ Column, _ ColumnCount) 'Variaveis '---------- Dim temp() Dim x, i, y As Integer Dim sorted As Boolean 'Dimensões do array '------------------ ReDim Preserve temp(1 To UBound(TheArray, Column), 1 To ColumnCount) 'Repetição para ordenar até o final do array '-------------------------------------------- Do While Not sorted 'No inicio ele está ordenado '-------------------------- sorted = True 'Laço que percorre as linhas '---------------------------- For x = linhaCabecalho + 1 To UBound(TheArray, Column) - 1 'Faz a comparação '---------------- If (TheArray(x, Column) > TheArray(x + 1, Column) And TheArray(x + 1, Column) <> Empty) Then 'Ando por todas as colunas '------------------------- For y = 1 To ColumnCount temp(x, y) = TheArray(x + 1, y) Next y 'Ando por todas as colunas '------------------------- For y = 1 To ColumnCount TheArray(x + 1, y) = TheArray(x, y) Next y 'Ando por todas as colunas '------------------------- For y = 1 To ColumnCount TheArray(x, y) = temp(x, y) Next y 'Passou pelo if, então não está ordenado '--------------------------------------- sorted = False End If Next x Loop End Function |
Valeu André!
ASP.NET – Preenchendo o controle Repeater com um Array de String
O controle Repeater tem um único defeito, que é também sua maior virtude. Peca pela simplicidade.
Entre algumas coisas que precisei fazer recentemente, uma era colocar os itens de um Array em uma página ASP.NET. Querendo fugir do Response.Write e da concatenação de itens dentro de um laço de repetição, decidi usar o bom e velho Repeater. O problema é que, após definir o DataSource do dito como sendo o Array de Strings, não há como informar o “Value” ou “Text” de um Array para o Eval() ou Bind(). Solução: Basta mencionar o Container.DataItem no código aspx que o Repeater se encarrega de efetuar o “Bind” com o Array:
1 2 3 4 5 6 7 8 9 10 11 12 13 | <asp:Repeater ID="RepeaterArray" runat="server"> <HeaderTemplate> <ul> </HeaderTemplate> <ItemTemplate> <li> <%# Container.DataItem %> </li> </ItemTemplate> <FooterTemplate> </ul> </FooterTemplate> </asp:Repeater> |
1 2 3 4 5 6 7 8 9 | string[] meuArray = new string[] { "item 1", "item 2", "item 3", "item 4", "item 5" }; RepeaterArray.DataSource = meuArray; RepeaterArray.DataBind(); |
Mais simples impossível. Bom proveito!
C# – Convertendo um Array de String em um List
Dica bacana do site DotNetSpider, segue um trecho de código que efetua a conversão de um array de strings em um List<string>:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | string[] mylist = new string[5]; // cria o array de strings; // preenche com alguns valores mylist[0] = "Olá"; mylist[1] = "como"; mylist[2] = "vai"; mylist[3] = "você"; mylist[4] = "?"; // criar uma lista tipada de strings (List), // passando o tamanho do array de strings por parâmetro List StringtoList = new List(mylist.Length); // chama-se o método AddRange que aceita arrays convencionais // como parâmetro para adicionar os itens do array no List // e para efetuar a "conversão" StringtoList.AddRange(mylist); |
Os comentários são bem elucidativos para o entendimento do código. Como muitos métodos nativos do framework que retornar arrays de string, só para lembrar, Enum.GetNames e Directory.GetFiles, é útil em várias situações.
Bom proveito!