LIST (OF T) PARA CLASSE
Boa tarde a todos,
Tenho trabalhado com classes e lists onde transfiro os valores da classe para um registro (ou linha, não sei a terminologia correta rsrs) de uma list, até aà tudo normal.
Gostaria de saber se é possÃvel o inverso, ou seja, selecionar um registro, ou linha, do list e transferir os valores para a classe sem a necessidade disso:
e sim fazer algo do tipo:
classe=list.registro
em todos os exemplos que achei de trabalho com lists, não vi essa possibilidade
Se puderem me informar se existe a possibilidade e como fazer
Obrigado desde já
Tenho trabalhado com classes e lists onde transfiro os valores da classe para um registro (ou linha, não sei a terminologia correta rsrs) de uma list, até aà tudo normal.
Gostaria de saber se é possÃvel o inverso, ou seja, selecionar um registro, ou linha, do list e transferir os valores para a classe sem a necessidade disso:
Classe.Nome = list.item(2).nome
e sim fazer algo do tipo:
classe=list.registro
em todos os exemplos que achei de trabalho com lists, não vi essa possibilidade
Se puderem me informar se existe a possibilidade e como fazer
Obrigado desde já
Você pode usar o método FirstOrDefault, com uma expressão lambda para encontrar o Ãtem desejado. Ela retorna uma instância de Ãtem ou null caso não encontre um Ãtem com o critério especificado.
No caso acima, [Ô]variavel[Ô] conterá uma instância de um Ãtem da lista, cuja propriedade Codigo tenha o valor 9. Caso não exista na lista um Ãtem com essa caracterÃstica, [Ô]variavel[Ô] conterá null. Também atente que o tipo de [Ô]variavel[Ô] deve ser do mesmo tipo dos Ãtens dentro de [Ô]SuaLista[Ô]
SuaClasse variavel = SuaLista.FirstOrDefault(x => x.Codigo == 9);
No caso acima, [Ô]variavel[Ô] conterá uma instância de um Ãtem da lista, cuja propriedade Codigo tenha o valor 9. Caso não exista na lista um Ãtem com essa caracterÃstica, [Ô]variavel[Ô] conterá null. Também atente que o tipo de [Ô]variavel[Ô] deve ser do mesmo tipo dos Ãtens dentro de [Ô]SuaLista[Ô]
Damasceno, o que você precisa entender é que classes são ponteiros que apontam para os dados. Vamos supor que você crie uma instância de uma classe qualquer e atribua uma valor para uma de suas propriedades , conforme abaixo:
Após isso, digamos que você adicione essa instância ao DataGridView. Note que se você mudar o valor contido na propriedade nome na instância de cliente declarada acima, os dados automaticamente mudarão no DataGridView sem ao menos fazer qualquer pesquisa nele. O processo inverso também é verdadeiro. Por tanto, o que você quer é perfeitamente possÃvel, mas você estará lidando com ponteiros e não com dados.
dim cliente as new Cliente
cliente.Nome = [Ô]Damasceno[Ô]
Após isso, digamos que você adicione essa instância ao DataGridView. Note que se você mudar o valor contido na propriedade nome na instância de cliente declarada acima, os dados automaticamente mudarão no DataGridView sem ao menos fazer qualquer pesquisa nele. O processo inverso também é verdadeiro. Por tanto, o que você quer é perfeitamente possÃvel, mas você estará lidando com ponteiros e não com dados.
Obrigado KERPLUNK, em cima de seu exemplo, consegui o retorno que queria, funcionou perfeitamente
Obrigado JABA, em cima de sua explicação posso conseguir desenvolver um código mais limpo e eficiente!
Obrigado aos dois companheiros!!
Obrigado JABA, em cima de sua explicação posso conseguir desenvolver um código mais limpo e eficiente!
Obrigado aos dois companheiros!!
Tópico encerrado , respostas não são mais permitidas