首頁 >後端開發 >C++ >IEnumerable 或 IList:如何避免多重枚舉警告?

IEnumerable 或 IList:如何避免多重枚舉警告?

Mary-Kate Olsen
Mary-Kate Olsen原創
2025-01-05 11:42:39623瀏覽

IEnumerable or IList: How to Avoid Multiple Enumeration Warnings?

使用IEnumerable 時導覽多個枚舉警告

挑戰:

使用考慮潛在的多重枚舉。在某些情況下,這可能會觸發 ReSharper 警告「可能存在多個 IEnumerable 枚舉」。

可能的解決方案:

將參數更改為 List 類型可以避開警告但可能會限制對特定物件的存取。在方法開始時將 IEnumerable 轉換為清單可以解決問題,但會帶來尷尬的感覺。

建議方法:

使用 IEnumerable 作為參數的主要問題源於其關於預期枚舉數量的模糊性。修改方法簽名以指定 IList 或 ICollection 可以澄清對呼叫者的期望,並防止代價高昂的錯誤。

或者,如果使用 IEnumerable 至關重要,則在方法開始時執行 .ToList() 轉換可能是合適的。但是,這種方法可能比指定更具限制性的參數類型效率低。

其他注意事項:

理想的解決方案將涉及一個結合了 IEnumerable 功能的介面、Count 和 Indexer 但不包括變異方法。不幸的是,目前 .NET 中不存在這樣的接口,讓我們根據具體的使用需求權衡每種方法的優缺點。

以上是IEnumerable 或 IList:如何避免多重枚舉警告?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn