亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

.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

河池市| 道孚县| 天祝| 商城县| 仁寿县| 苏尼特右旗| 改则县| 安康市| 延长县| 哈密市| 松滋市| 体育| 玛纳斯县| 双流县| 西乌珠穆沁旗| 开原市| 庆城县| 江西省| 麻栗坡县| 武安市| 大埔县| 嘉峪关市| 台安县| 南丹县| 镇雄县| 景谷| 深州市| 禹州市| 潜江市| 邓州市| 平乐县| 安龙县| 乐昌市| 新野县| 桦甸市| 孝义市| 陵水| 揭东县| 梁平县| 象山县| 且末县|