EDITAR UM ITEM EM GENERIC LIST

LUIS.HERRERA 13/05/2013 12:48:30
#423376
Boa tarde.

Alguém poderia me dizer como altero o valor de um item numa LIST?

Estou tentando editar um único item, mas não estou conseguindo.

Assim:

List<CargoAtitudeModelo> tempListAtitudes = new List<CargoAtitudeModelo>(); //-> Crio uma list vazia tempListAtitudes = (List<CargoAtitudeModelo>)gridAtitudes.DataSource; //-> Pego dados do List associado ao DataGridView
CargoAtitudeModelo tempValorAtualizar = new CargoAtitudeModelo(); //-> lista temporária com um item (dados atualizados)
tempValorAtualizar .IDCARGO = Convert.ToInt32(txtIDCargo.Text); ;
tempValorAtualizar .ATITUDE_PT = textoPT;
tempValorAtualizar .ATITUDE_EN = textoEN;
tempValorAtualizar .ATITUDE_ES = textoES;
tempValorAtualizar .IDATITUDE = myIDAtitudeSelecionada;
tempValorAtualizar .Valor = Convert.ToByte(txtValor.Text);


Aqui o problema, não sei como fazer a identificarção do item onde:
((tempListAtitudes.IDCARGO = tempValorAtualizar.IDCARGO) AND (tempListAtitudes.IDATITUDE= tempValorAtualizar.IDATITUDE))
para atualizar o valor com o novo item tempValorAtualizar.

Depois associo este Lista ao Grid assim:

gridAtitudes.DataSource = null; //tiro a lista atual
MontaGridAtitudes(); //remonto o grid para evitar erro
gridAtitudes.DataSource = tempListAtitudes; //associo o novo list corrigido


Nota: a modificação deve ser feita no grid, porque todos os itens do grid devem ser atualizados antes de gravar no banco. Esta parte já está pronta.
KERPLUNK 13/05/2013 13:08:14
#423377
Resposta escolhida
Use uma expressão lambda para selecionar o ítem que queira, mais ou menos assim:


List<CargoAtitudeModelo> todos = ((List<CargoAtitudeModelo>)gridAtitudes.DataSource).ToList();
CargoAtitudeModelo item = todos.FirstOrDefault(i => i.IDCARGO == SEU_ID && i.IDATITUDE == SEU_ID_ATITUDE);

item.XXX = [Ô]YYYY[Ô];

LUIS.HERRERA 13/05/2013 14:18:35
#423381
Obrigado funcionou.
Tópico encerrado , respostas não são mais permitidas