Простой способ обновления объектов IEnumerable с помощью LINQ

Предположим, у меня есть подобный бизнес-объект,

class Employee
    {
        public string name;
        public int id;
        public string desgination;
        public int grade;
    }

    List<Employee> lstEmp = new List<Employee>()
        {
            new Employee() { name="A",desgination="SE",id=1},
            new Employee() { name="b",desgination="TL",id=2},
            new Employee() { name="c",desgination="PL",id=3},
            new Employee() { name="d",desgination="SE",id=4},
            new Employee() { name="e",desgination="SSE",id=5},
        };

И если я хочу обновить оценку сотрудника до 3 с обозначением «SE», то я должен написать что-то вроде этого

lstEmp=lstEmp.Select(x =>
            {
                x.grade = (x.desgination == "SE") ? 3 : x.grade;
                    return x;
            }).ToList();

Но здесь, при использовании select, он каждый раз будет генерировать новый объект сотрудника, а не обновлять существующий lstEmp, поэтому мне нужно переназначить обновленный список для lstEmp.

Мне кажется, это влияет на производительность при частом обновлении больших обновлений. есть ли способ повторно объявить класс, чтобы преодолеть это?)

6
задан utku_karatas 14 October 2010 в 06:05
поделиться