Hola JlarzateC:
Supongo que has copiado parte de tú código, para poder explicar lo que te ocurre, y encontrar la solución.
Si es tú caso, en la sentencia ítem.total==0 debe de ser ítem.Total=0;
class Data
{
public string PartNumber { get; set; }
public int Total { get; set; }
public override string ToString()
{
return String.Format("PartNumber {0}, Total{1}", PartNumber, Total);
}
static void Main(string[] args)
{
List<Data> list = new List<Data>();
list.Add(new Data() { PartNumber = "1234", Total = 15 });
list.Add(new Data() { PartNumber = "1235", Total = 10 });
list.Add(new Data() { PartNumber = "1236", Total = 20 });
foreach (var item in list)
{
if (item.PartNumber == "1234")
{
item.Total = 0;
}
}
foreach (Data item in list)
{
Console.WriteLine(item.ToString());
}
Console.ReadLine();
}
}