91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

.NET?6的TryGetNonEnumeratedCount方法怎么用

發布時間:2022-03-14 15:50:59 來源:億速云 閱讀:158 作者:iii 欄目:開發技術

本篇內容主要講解“.NET 6的TryGetNonEnumeratedCount方法怎么用”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“.NET 6的TryGetNonEnumeratedCount方法怎么用”吧!

一、舉例

嘗試下列代碼:

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

你會發現,b.Count()能夠執行,而a.Count()會報錯: 

.NET?6的TryGetNonEnumeratedCount方法怎么用

二、原理

這是由LINQ內部實現造成的。

對于某些集合類型,如果無法快速確定集合元素數量&mdash;&mdash;例如Count屬性,調用Count()則必須枚舉整個集合以確定元素的數量。

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

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

結論:

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

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

到此,相信大家對“.NET 6的TryGetNonEnumeratedCount方法怎么用”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

明水县| 平阳县| 红桥区| 桦南县| 邮箱| 宁河县| 托克逊县| 安西县| 绥江县| 乡城县| 将乐县| 苍山县| 疏勒县| 通山县| 西青区| 陆丰市| 额敏县| 新沂市| 当阳市| 乌鲁木齐市| 大连市| 永善县| 清原| 河东区| 西丰县| 资源县| 陆川县| 海晏县| 凤山市| 离岛区| 年辖:市辖区| 安阳县| 鲁山县| 凤凰县| 横峰县| 建瓯市| 扶余县| 呼和浩特市| 灌云县| 巴彦淖尔市| 葫芦岛市|