處理IEnumerable 多重枚舉的危險
在使用IEnumerable 集合時,開發人員經常會遇到警告「Possible multiple enumeration of IEpleable 」 ,」當集合被迭代多次時就會出現。這個問題可能會產生問題,特別是在處理某些類型的集合時,例如代表資料庫查詢或其他昂貴操作的集合。
考慮以下程式碼片段:
public List<object> Foo(IEnumerable<object> objects) { if (objects == null || !objects.Any()) throw new ArgumentException(); var firstObject = objects.First(); var list = DoSomeThing(firstObject); var secondList = DoSomeThingElse(objects); list.AddRange(secondList); return list; }
一種方法避免多重枚舉警告的方法是修改方法參數以接受List
雖然這種技術可以有效地防止警告,但它可能會讓人感到尷尬和不必要的冗長。傳遞IEnumerable 參數表示呼叫者預計該方法僅枚舉該集合一次。 ICollection,您可以向呼叫者明確傳達您對集合的期望,從而減少誤解和代價高昂的錯誤的風險。 。和索引器的功能,而無需添加或刪除方法。以上是如何避免 C# 中的「可能的 IEnumerable 多重枚舉」警告?的詳細內容。更多資訊請關注PHP中文網其他相關文章!