日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

NET 6 中新增的LINQ 方法

發布時間:2023/12/4 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 NET 6 中新增的LINQ 方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

.NET 6 中添加了許多 LINQ 方法。下表中列出的大多數新方法在 System.Linq.Queryable 類型中具有等效方法。

歡迎關注

如果你刻意練習某件事情請超過10000小時,那么你就會達到世界級別

今晚打老虎

TryGetNonEnumeratedCount 嘗試在不強制枚舉的情況下確定序列中的元素數。

List<object>?numbers1?=?new?List<object>()?{?5,?4,?"nihao"?};int?num?=?0;numbers1.TryGetNonEnumeratedCount(out?num);

num輸出為3

Chunk 將序列的元素拆分為指定大小的區塊

var?list?=?new?List<dynamic>{new?{?Id?=?1,?Property?=?"value1"?},new?{?Id?=?2,?Property?=?"value2"?},new?{?Id?=?3,?Property?=?"value1"?}};var?a?=?list.Chunk(2);

返回 兩個元素,第一個list長度為2,第二個為1

ElementAt方法 返回元素指定索引或者結束的索引

var?list?=?new?List<dynamic>{new?{?Id?=?1,?Property?=?"value1"?},new?{?Id?=?2,?Property?=?"value2"?},new?{?Id?=?3,?Property?=?"value1"?},new?{?Id?=?4,?Property?=?"value4"?},new?{?Id?=?5,?Property?=?"value2"?},new?{?Id?=?6,?Property?=?"value6"?},new?{?Id?=?7,?Property?=?"value7"?},new?{?Id?=?8,?Property?=?"value8"?},new?{?Id?=?9,?Property?=?"value9"?}}; var??b=list.ElementAt(2);var??a=list.ElementAt(^2);

a返回的是id=8的item b返回的是id=9的item

MaxBy 和 MinBy ?返回元素中最大值或最小值

  • MaxBy ?返回元素中的最大元素

  • MinBy 返回元素中的最小元素

List<int>?numbers1?=?new?List<int>()?{?5,?4,?1,?3,?9,?8,?6,?7,?12,?10?};var?maxnum=?numbers1.MaxBy(x?=>?x);var?mixnum=?numbers1.MinBy(x?=>?x);

maxnum輸出為12,minnum為1

DistinctBy ? 根據某元素去重

  • (相當于以前的自定義方法)

var?list?=?new?List<dynamic>{new?{?Id?=?1,?Property?=?"value1"?},new?{?Id?=?2,?Property?=?"value2"?},new?{?Id?=?3,?Property?=?"value1"?}};//?returns?objects?with?Id?=?1,?2,?but?not?3var?distinctList?=?list.DistinctBy(x?=>?x.Property).ToList();

返回id為1和2的 就相當于自定義擴展方法

public?static?IEnumerable<t>?DistinctBy<t>(this?IEnumerable<t>?list,?Func<t,?object>?propertySelector) {return?list.GroupBy(propertySelector).Select(x?=>?x.First());

ExceptBy返回 兩個序列的元素的集合差值的序列

IntersectBy ?返回兩個序列元素 得交際

UnionBy ? 連接不同集合,過濾某元素相同項

FirstOrDefault返回序列中滿足條件的第一個元素;如果未找到這樣的元素,則返回默認值

LastOrDefault 返回序列中的最后一個元素;如果未找到該元素,則返回默認值

SingleOrDefault 返回序列中的唯一元素;如果該序列為空,則返回默認值;如果該序列包含多個元素,此方法將引發異常。

Take 從序列的開頭返回指定數量的相鄰元素

int[]?grades?=?{?59,?82,?70,?56,?92,?98,?85?};IEnumerable<int>?topThreeGrades?=grades.OrderByDescending(grade?=>?grade).Take(3);Console.WriteLine("The?top?three?grades?are:"); foreach?(int?grade?in?topThreeGrades) {Console.WriteLine(grade); } /*This?code?produces?the?following?output:The?top?three?grades?are:989285 */

Zip將指定函數應用于兩個序列的對應元素,以生成結果序列

int[]?numbers?=?{?1,?2,?3,?4?}; string[]?words?=?{?"one",?"two",?"three"?};var?numbersAndWords?=?numbers.Zip(words,?(first,?second)?=>?first?+?"?"?+?second);foreach?(var?item?in?numbersAndWords)Console.WriteLine(item);//?This?code?produces?the?following?output://?1?one //?2?two //?3?three

總結

以上是生活随笔為你收集整理的NET 6 中新增的LINQ 方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。