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

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

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

前言:

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

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

下文來看看具體情況?。。?/p>

一、舉例

嘗試下列代碼:

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();
? ? }
}

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

二、原理

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

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

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

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

結(jié)論:

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

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

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

相關(guān)文章

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

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

    正常操作情況下會有ASP.NET Session丟失的情況出現(xiàn)。因為程序是在不停的被操作,排除Session超時的可能。另外,Session超時時間被設(shè)定成60分鐘,不會這么快就超時的。
    2011-02-02
  • .NET中基于事件的異步模式-EAP

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

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

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

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

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

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

    一個簡答的Access下的分頁asp.net代碼

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

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

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

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

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

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

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

    為ASP.NET Core強類型配置對象添加驗證的方法

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

    .NET運行界面上,實現(xiàn)隨意拖動控件的方法

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

最新評論

五莲县| 班戈县| 屏南县| 临汾市| 和林格尔县| 广饶县| 灯塔市| 宁波市| 额尔古纳市| 潍坊市| 长沙市| 双鸭山市| 瓮安县| 江津市| 阿拉善右旗| 德令哈市| 县级市| 贵州省| 浦城县| 茶陵县| 子洲县| 桐庐县| 益阳市| 抚顺县| 耒阳市| 沐川县| 博湖县| 临猗县| 汾阳市| 蚌埠市| 龙南县| 滕州市| 常宁市| 许昌县| 定安县| 祁阳县| 会同县| 民县| 铁力市| 卢龙县| 工布江达县|