LIST (OF T) PARA CLASSE

DAMASCENO.CESAR 02/03/2017 13:40:32
#472051
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:

  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á
KERPLUNK 02/03/2017 13:45:47
#472052
Resposta escolhida
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.

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[Ô]
JABA 02/03/2017 15:22:33
#472054
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:

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.
DAMASCENO.CESAR 02/03/2017 16:57:48
#472055
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!!
Tópico encerrado , respostas não são mais permitidas