最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

.NET?6新特性試用之TryGetNonEnumeratedCount?方法

 更新時(shí)間:2022年03月15日 10:54:17   作者:My?IO  
這篇文章主要介紹了.NET?6新特性試用TryGetNonEnumeratedCount,這個(gè)方法可計(jì)算可枚舉類型的元素總數(shù),下面來看看具體的使用方式吧,需要的朋友可以參考一下

前言:

.NET 6新增了??TryGetNonEnumeratedCount??方法,計(jì)算可枚舉類型的元素總數(shù)。

LINQ不是已經(jīng)有了??Count??方法嗎,為什么還要畫蛇添足呢?

下文來看看具體情況?。?!

一、舉例

嘗試下列代碼:

var b = new B<int>();
Console.WriteLine($@"{b.Count()}");

var a = new A<int>();
Console.WriteLine($@"{a.Count()}");

class A<T> : IEnumerable<T>
{
? ? public IEnumerator<T> GetEnumerator()
? ? {
? ? ? ? throw new NotImplementedException();
? ? }

? ? IEnumerator IEnumerable.GetEnumerator()
? ? {
? ? ? ? throw new NotImplementedException();
? ? }
}

class B<T> : A<T>,ICollection
{
? ? public int Count => 10086;

? ? public bool IsSynchronized => throw new NotImplementedException();

? ? public object SyncRoot => throw new NotImplementedException();

? ? public void CopyTo(Array array, int index)
? ? {
? ? ? ? throw new NotImplementedException();
? ? }
}

你會(huì)發(fā)現(xiàn),??b.Count()???能夠執(zhí)行,而??a.Count()??會(huì)報(bào)錯(cuò): 

二、原理

這是由LINQ內(nèi)部實(shí)現(xiàn)造成的。

對于某些集合類型,如果無法快速確定集合元素?cái)?shù)量——例如Count屬性,調(diào)用??Count()??則必須枚舉整個(gè)集合以確定元素的數(shù)量。

在某些情況下,枚舉會(huì)嚴(yán)重影響程序性能,比如EF Core下使用??IQueryable.Count()??就需要訪問數(shù)據(jù)庫獲取全部記錄才能計(jì)數(shù)。

因此,更高效地計(jì)算序列中的元素?cái)?shù),就是使用??TryGetNonEnumeratedCount??方法,如果可以快速計(jì)數(shù),該方法將返回true并將計(jì)數(shù)作為out變量返回。

結(jié)論:

建議你始終使用以下格式代碼,去獲取可枚舉類型的元素總數(shù):

if (!enumerable.TryGetNonEnumeratedCount(out var count))
{
? ? //使用其他方式獲取元素?cái)?shù)量
}

到此這篇關(guān)于.NET 6新特性試用之TryGetNonEnumeratedCount 方法的文章就介紹到這了,更多相關(guān)TryGetNonEnumeratedCount 方法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • asp.net session丟失的解決方法小結(jié)

    asp.net session丟失的解決方法小結(jié)

    正常操作情況下會(huì)有ASP.NET Session丟失的情況出現(xiàn)。因?yàn)槌绦蚴窃诓煌5谋徊僮鳎懦齋ession超時(shí)的可能。另外,Session超時(shí)時(shí)間被設(shè)定成60分鐘,不會(huì)這么快就超時(shí)的。
    2011-02-02
  • .NET中基于事件的異步模式-EAP

    .NET中基于事件的異步模式-EAP

    從.NET 4.5開始,支持的三種異步編程模式:基于事件的異步編程設(shè)計(jì)模式、異步編程模型、基于任務(wù)的編程模型,感興趣的朋友可以參考下
    2013-01-01
  • ASP.NET MVC5網(wǎng)站開發(fā)我的咨詢列表及添加咨詢(十二)

    ASP.NET MVC5網(wǎng)站開發(fā)我的咨詢列表及添加咨詢(十二)

    這篇文章主要為大家詳細(xì)介紹了ASP.NET MVC5網(wǎng)站開發(fā)我的咨詢列表及添加咨詢,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2015-09-09
  • ASP.NET Ajax級(jí)聯(lián)DropDownList實(shí)現(xiàn)代碼

    ASP.NET Ajax級(jí)聯(lián)DropDownList實(shí)現(xiàn)代碼

    我想大家對Ajax已耳熟能詳。自web 2.0概念出現(xiàn)以后,提供更好的用戶體驗(yàn)變得越來越重要。那么今天我來講解一下如何使用ASP.NET Ajax和web service構(gòu)建無刷新級(jí)聯(lián)DropDownList(以下簡稱為級(jí)聯(lián)DDL)。完成的效果圖
    2008-12-12
  • 一個(gè)簡答的Access下的分頁asp.net代碼

    一個(gè)簡答的Access下的分頁asp.net代碼

    一個(gè)簡答的Access下的分頁asp.net代碼
    2010-03-03
  • .NET Core 3.0 可回收程序集加載上下文的實(shí)現(xiàn)

    .NET Core 3.0 可回收程序集加載上下文的實(shí)現(xiàn)

    這篇文章主要介紹了.NET Core 3.0 可回收程序集加載上下文的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • 使用linq讀取分隔符文本文件

    使用linq讀取分隔符文本文件

    有時(shí)我們會(huì)處理一些帶分隔符數(shù)據(jù)文本文件。例如,使用”,”分隔的數(shù)據(jù),下面介紹下使用linq讀取分隔符文本文件的方法
    2014-01-01
  • asp.net的公共變量聲明問題(解決)

    asp.net的公共變量聲明問題(解決)

    前段時(shí)間有個(gè)項(xiàng)目中登錄的時(shí)候碰到了聲明公共變量的情況,用戶類型分為二種類型,所以不同類型用戶登錄的時(shí)候所走的情況不一樣,目前用AB分別代表二類用戶。
    2013-03-03
  • 為ASP.NET Core強(qiáng)類型配置對象添加驗(yàn)證的方法

    為ASP.NET Core強(qiáng)類型配置對象添加驗(yàn)證的方法

    這篇文章主要給大家介紹了關(guān)于如何為ASP.NET Core強(qiáng)類型配置對象添加驗(yàn)證的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12
  • .NET運(yùn)行界面上,實(shí)現(xiàn)隨意拖動(dòng)控件的方法

    .NET運(yùn)行界面上,實(shí)現(xiàn)隨意拖動(dòng)控件的方法

    .NET運(yùn)行界面上,實(shí)現(xiàn)隨意拖動(dòng)控件的方法,需要的朋友可以參考一下
    2013-03-03

最新評論

镇巴县| 贵德县| 扬中市| 凭祥市| 望奎县| 安达市| 和林格尔县| 调兵山市| 上思县| 辛集市| 万全县| 大余县| 成武县| 开封市| 金华市| 稷山县| 奉节县| 南安市| 图木舒克市| 鹿泉市| 长沙市| 正阳县| 沧州市| 衡东县| 天镇县| 蓬溪县| 孝义市| 扶沟县| 泉州市| 米林县| 襄汾县| 宜昌市| 汾阳市| 宝丰县| 静宁县| 二手房| 寿光市| 饶平县| 聂拉木县| 芜湖市| 胶州市|