title: Simple way to update IEnumerable objects using LINQ
body: <p>Assume I have a business object like this,</p>
  
  <pre><code>class Employee
      {
          public string name;
          public int id;
          public string desgination;
          public int grade;
      }
  
      List&lt;Employee&gt; lstEmp = new List&lt;Employee&gt;()
          {
              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},
          };
  </code></pre>
  
  <p>And if I want to update the employee grade to 3 whose designation is "SE", then I have to write something like this</p>
  
  <pre><code>lstEmp=lstEmp.Select(x =&gt;
              {
                  x.grade = (x.desgination == "SE") ? 3 : x.grade;
                      return x;
              }).ToList();
  </code></pre>
  
  <p>But here when using select it will generate new employee object everytime, not updating the existing lstEmp, so I have to reassgin the updated list to lstEmp. </p>
  
  <p>It seems to me it affects the performance when updating large updates frequently. Is there a workaround for this?</p>