c#用lambda修改符合條件對象的某個字段的三種方法


 1  public class User
 2     {
 3         public User(int id, string name, string sex, int age,string address)
 4         {
 5             this.ID = id;
 6             this.Name = name;
 7             this.Sex = sex;
 8             this.Age = age;
 9             this.Address = address;
10         }
11         public User() { 
12         
13         }
14         public int ID { get; set; }
15         public string Name { get; set; }
16         public string Sex { get; set; }
17         public int Age { get; set; }
18         public string Address { get; set; }
19 
20         public List<User> CreateData() {
21             List<User> list =new List<User>{
22                 new User(1, "虞姬", "", 18, "閘北區"), 
23                 new User(2, "李白", "", 22, "靜安區"),
24                 new User(3, "王昭君", "", 19, "浦東新區"),
25                 new User(4, "后裔", "", 33, "普陀區"), 
26                 new User(5, "黃忠", "", 36, "閘北區"),
27                 new User(6, "阿珂", "", 66, "湖南"),
28                 new User(7, "鍾無艷", "", 46, "青浦區") ,
29                 new User(8, "鍾馗", "", 80, "崇明") ,
30             };
31             return list;
32         }
33     }
造基礎數據

 

 以上是測試功能用的基礎數據。我要將數據列表中姓鍾的英雄的年齡改成99。以下列了三種方法。傳統的for 循環就不寫出來了

 1 //將數據源中姓鍾的,並將他的年齡改成99歲
 2             List<User> usersss =( from u in userlist
 3                          select u).ToList();
 4             //方法一:
 5             usersss = usersss.Select(o =>
 6             {
 7                 o.Age = o.Name.StartsWith("") ? 99 : o.Age;
 8                 return o;
 9             }).ToList();
10 
11             //方法二:
12             //usersss.ForEach(o =>
13             //{
14             //    o.Age = o.Name.StartsWith("鍾") ? 99 : o.Age;
15             //});
16         
17         
18     //方法三
19     //usersss = usersss.FindAll(delegate(User o)
20      //{
21       //if (o.Name.StartsWith("鍾"))
22       //{
23          //o.Age = 99;
24        //}
25        //return o.Name != null;
26      //});

 


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM