欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

前言:

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

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

下文來(lái)看看具體情況?。?!

一、舉例

嘗試下列代碼:

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)造成的。

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

在某些情況下,枚舉會(huì)嚴(yán)重影響程序性能,比如EF Core下使用??IQueryable.Count()??就需要訪問(wèn)數(shù)據(jù)庫(kù)獲取全部記錄才能計(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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用HttpClient消費(fèi)ASP.NET Web API服務(wù)案例

    使用HttpClient消費(fèi)ASP.NET Web API服務(wù)案例

    這篇文章介紹了使用HttpClient消費(fèi)ASP.NET Web API服務(wù)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-10-10
  • .NET工廠方法模式講解

    .NET工廠方法模式講解

    這篇文章主要為大家詳細(xì)介紹了ASP.NET工廠方法模式的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • HttpWebRequest的常見(jiàn)錯(cuò)誤使用TcpClient可避免

    HttpWebRequest的常見(jiàn)錯(cuò)誤使用TcpClient可避免

    有時(shí)使用HttpWebRequest對(duì)象會(huì)出現(xiàn)錯(cuò)誤有三種服務(wù)器提交了協(xié)議沖突/基礎(chǔ)連接已經(jīng)關(guān)閉:連接被意外關(guān)閉/無(wú)法發(fā)送具有此謂詞類型的內(nèi)容正文,感興趣的朋友可以參考下本文
    2013-02-02
  • 詳解.NET中使用Redis數(shù)據(jù)庫(kù)

    詳解.NET中使用Redis數(shù)據(jù)庫(kù)

    Redis是一個(gè)用的比較廣泛的Key/Value的內(nèi)存數(shù)據(jù)庫(kù),這篇文章主要介紹了詳解.NET中使用Redis數(shù)據(jù)庫(kù),有興趣的可以了解一下。
    2016-12-12
  • 基于ASP.NET實(shí)現(xiàn)單點(diǎn)登錄(SSO)的示例代碼

    基于ASP.NET實(shí)現(xiàn)單點(diǎn)登錄(SSO)的示例代碼

    SSO英文全稱Single?Sign?On(單點(diǎn)登錄)。SSO是在多個(gè)應(yīng)用系統(tǒng)中,用戶只需要登錄一次就可以訪問(wèn)所有相互信任的應(yīng)用系統(tǒng)。本文為大家分享了基于ASP.NET實(shí)現(xiàn)單點(diǎn)登錄(SSO)的示例代碼,需要的可以參考一下
    2022-05-05
  • ASP.NET?MVC打印表格并實(shí)現(xiàn)部分視圖表格打印

    ASP.NET?MVC打印表格并實(shí)現(xiàn)部分視圖表格打印

    這篇文章介紹了ASP.NET?MVC打印表格并實(shí)現(xiàn)部分視圖表格打印的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-08-08
  • 配置Visual Studio 以調(diào)試.net framework源代碼

    配置Visual Studio 以調(diào)試.net framework源代碼

    看到.net框架代碼發(fā)布了,興奮了一下,把在Visual Studio 2008上配置的內(nèi)容翻譯了一下,只翻譯了原文的基本步驟,高級(jí)用戶篇和QA沒(méi)有翻譯。
    2009-04-04
  • MVC4制作網(wǎng)站教程第四章 添加欄目4.1

    MVC4制作網(wǎng)站教程第四章 添加欄目4.1

    這篇文章主要為大家詳細(xì)介紹了MVC4制作網(wǎng)站教程,添加欄目功能實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-08-08
  • 詳解ASP.NET Core 處理 404 Not Found

    詳解ASP.NET Core 處理 404 Not Found

    這篇文章主要介紹了詳解ASP.NET Core 處理 404 Not Found,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-10-10
  • VS2022?.NET5一鍵發(fā)布到遠(yuǎn)程騰訊云IIS服務(wù)器的詳細(xì)步驟

    VS2022?.NET5一鍵發(fā)布到遠(yuǎn)程騰訊云IIS服務(wù)器的詳細(xì)步驟

    這篇文章主要介紹了VS2022?.NET5一鍵發(fā)布到遠(yuǎn)程騰訊云IIS服務(wù)器,首先需要添加服務(wù)器相關(guān)功能,文中通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-04-04

最新評(píng)論