首頁 > 後端開發 > C++ > 如何在不迭代的情況下取得 IEnumerable 的計數?

如何在不迭代的情況下取得 IEnumerable 的計數?

Barbara Streisand
發布: 2024-12-26 06:50:13
原創
420 人瀏覽過

How to Get the Count of an IEnumerable without Iteration?

取得IEnumerable 的計數沒有迭代

在某些情況下,開發人員可能需要確定IEnumerable 中的元素數量。集合而無需迭代它。例如,當需要透過指示目前正在處理的項目數和總數來顯示進度狀態時,就會發生這種情況。

但是,IEnumerable缺乏無需迭代即可檢索計數的固有方法。這是一個經過深思熟慮的設計選擇,因為 IEnumerable擁抱惰性計算,僅根據請求產生元素。

解決方案:利用ICollection

為了規避IEnumerable 的限制,開發人員可以利用ICollection,繼承自IEnumerable ;並包括Count 屬性。透過強制轉換 IEnumerable實例化 ICollection 時,可以直接存取 Count 屬性,提供元素數量,無需迭代。

範例:

考慮以下程式碼:

private IEnumerable<string> Tables
{
    get
    {
        yield return "Foo";
        yield return "Bar";
    }
}
登入後複製

要確定表格的數量而不迭代,程式碼可以修改為如下:

var count = ((ICollection<string>)Tables).Count;
登入後複製

轉換為ICollection;可以直接存取Count 屬性,產生值2,表示集合中的表格數量,無需迭代。

以上是如何在不迭代的情況下取得 IEnumerable 的計數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板