国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

用一句Linq把一個集合的屬性值根據條件改了,其他值不變

2019-11-14 14:04:32
字體:
來源:轉載
供稿:網友

剛無聊看到群里一位朋友在提問,大晚上沒人解答,遂自己默默打開了VS,敲起了代碼。

問題:請問怎么將集合newFoods中Name含有"包子"的Number+1,LINQ可以一句話寫出來 ?

List<Food> newFoods = new List<Food>{    new Food { Money = 10, Name = "天津包子", Number=1 },    new Food { Money = 10, Name = "狗不理包子", Number = 1 },    new Food { Money = 10, Name = "小籠包子", Number = 1 },    new Food { Money = 10, Name = "饅頭", Number = 1 },    new Food { Money = 10, Name = "粽子", Number = 1 }};

我先是敲了一下正常的寫法,很快出來了。

但是用Linq一直不知道該怎么寫,反而越寫越麻煩,還想出準備先篩選出一個對象,再把兩個對象合并的傻辦法。

后來發現原來select里是可以直接查詢完返回原對象的。之前用Linq一直以為只能是 model.Select(o=>o.PRoperty==xxx) 這樣用,也沒去深究,看來是修為不夠。

1樓給出的代碼更加簡潔快速,Linq真是方便

最后的代碼:

 1         #region  2         public class Food 3         { 4             public string Name { get; set; } 5             public int Money { get; set; } 6             public int Number { get; set; } 7         } 8         static void Example1() 9         {10             List<Food> newFoods = new List<Food>{11                new Food { Money = 10, Name = "天津包子", Number=1 },12                new Food { Money = 10, Name = "狗不理包子", Number = 1 },13                new Food { Money = 10, Name = "小籠包子", Number = 1 },14                new Food { Money = 10, Name = "饅頭", Number = 1 },15                new Food { Money = 10, Name = "粽子", Number = 1 }16             };17             //Linq寫法118             newFoods.ForEach(o =>19             {20                 o.Number = o.Name.Contains("包子") ? o.Number + 1 : o.Number;21             });22             //Linq寫法223             newFoods = newFoods.Select(o =>24             {25                 o.Number = o.Name.Contains("包子") ? o.Number + 1 : o.Number;26                 return o;27             }).ToList();28             //普通寫法29             for (int i = 0; i < newFoods.Count; i++)30             {31                 newFoods[i].Number = newFoods[i].Name.Contains("包子") ? newFoods[i].Number + 1 : newFoods[i].Number;32             }33             //遍歷輸出34             foreach (Food food in newFoods)35             {36                 Console.WriteLine("名稱:" + food.Name + ",價格:" + food.Money + ",數量:" + food.Number);37             }38             Console.ReadLine();39         }40         #endregion

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 石河子市| 巴林左旗| 堆龙德庆县| 伊吾县| 定西市| 清新县| 肥东县| 桑日县| 黑山县| 永城市| 江口县| 石狮市| 稷山县| 保康县| 陇西县| 天台县| 安龙县| 邹城市| 海阳市| 铁岭县| 郸城县| 黔江区| 都昌县| 广饶县| 邳州市| 洮南市| 重庆市| 塔河县| 米林县| 化隆| 青田县| 阳东县| 长顺县| 绥芬河市| 义乌市| 抚州市| 房山区| 类乌齐县| 鹤岗市| 龙里县| 大名县|