Dot-Net
將 IEnumerable<T> 轉換為 IList
如果一個方法採用 System.Collections.IList 類型的參數,我可以合法/安全地傳遞一個類型的值
System.Collections.Generic.IEnumerable<T>嗎?我將不勝感激詳細解釋為什麼這是可能的,以及在方法內部使用
T時對象實際發生的情況。IEnumerable<T>它是否轉換為 Object 的基本類型?
它用作
System.Collections.IEnumerable?是否有任何情況會導致問題(即性能問題)?
在此先感謝,約翰
不,您不能將 an 傳遞
IEnumerable<T>給採用IList. 該介面IEnumerable<T>不可轉換為IList,嘗試將類型變數傳遞IEnumerable<T>給採用的方法IList將導致編譯錯誤。為了完成這項工作,您需要執行以下操作之一
- 保持對實現和
IEnumerable<T>的類型的引用,而不是。是這裡的好人選IEnumerable<T>``IList``List<T>- 將
IEnumerable<T>實例轉換為可轉換為的新對象IList。例如,在 3.5+ 中,您可以呼叫.ToList()擴展方法來創建一個新List<T>的列舉。