国产探花免费观看_亚洲丰满少妇自慰呻吟_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

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 晋江市| 布尔津县| 普格县| 澎湖县| 商水县| 郴州市| 乌兰县| 曲阳县| 监利县| 曲周县| 开鲁县| 共和县| 凌云县| 准格尔旗| 湟源县| 大洼县| 恩施市| 旺苍县| 昆明市| 新密市| 方正县| 瓦房店市| 巴林左旗| 额济纳旗| 侯马市| 美姑县| 南川市| 博野县| 新乐市| 鄂托克前旗| 澄江县| 屏东县| 白河县| 区。| 团风县| 潼关县| 台南县| 靖远县| 喀什市| 沧州市| 阜平县|