例子如下:            List<sk> list1 = new List<sk>();
            sk s1 = new sk();
            s1.a = 5;
            s1.b = 10;
            list1.Add(s1);            sk s2 = new sk();
            s2.a = 6;
            s2.b = 11;
            list1.Add(s2);
            var query = (from c in list1
                        where c.a == 5
                        select c).First();查询出来list1中的s1符合结果,怎么在query中直接修改s1的值,希望达到类似是query[0].a = 20然后在list1中的s1.a也是20

解决方案 »

  1.   

     List<sk> list1 = new List<sk>();
                sk s1 = new sk();
                s1.a = 5; s1.b = 10;
                list1.Add(s1);
                sk s2 = new sk();
                s2.a = 6;
                s2.b = 11; list1.Add(s2);
                var query = (from c in list1 where c.a == 5 select c).First();
                query.a = 29;
                Console.WriteLine(list1[0].a);//29
      

  2.   

    var query = (from c in list1
                 where c.a == 5
                 select new sk() { a = 20, b = c.b }).First();
      

  3.   

    list1 = list1.Select(c => c.a == 5 ? new sk() { a = 20, b = c.b } : c).ToList();
    var query = (from c in list1
                 where c.a == 5
                 select c).First();