您好,登錄后才能下訂單哦!
都是I開發(fā),所以都是接口。
IEnumerator:集合訪問器,基礎(chǔ)的;沒有它,就不能使用forearch遍歷集合或數(shù)組,任何支持GetEnumerator()方法的類型都可以通過foreach結(jié)構(gòu)進(jìn)行運算。也可用 lamda 表達(dá)式查詢。
IEnumerable:只包含一個抽象方法GetEnumerator(),返回一個可循環(huán)訪問集合的IEnumerator對象。
IEnumerable<T> 泛型類在調(diào)用自己的SKip 和 Take 等擴(kuò)展方法之前數(shù)據(jù)就已經(jīng)加載在本地內(nèi)存里了
IList(IList<T>)會立即在內(nèi)存里創(chuàng)建持久數(shù)據(jù),這就沒有實現(xiàn)“延期執(zhí)行(deferred execution)”,如果被加載的實體有關(guān)聯(lián)實體(associations),此關(guān)聯(lián)實體不會被加載(既不立即加載,也不延遲加載)。
IQueryable<T> 是將Skip ,take 這些方法表達(dá)式翻譯成T-SQL語句之后再向SQL服務(wù)器發(fā)送命令,它并不是把所有數(shù)據(jù)都加載到內(nèi)存里來才進(jìn)行條件過濾.
IQeurable(IQuerable<T>)不會立即在內(nèi)存里創(chuàng)建持久數(shù)據(jù),只有遍歷它(如通過foreach)、把它轉(zhuǎn)換成List等情況下才會向內(nèi)存加載數(shù)據(jù),它可以實現(xiàn)“延期執(zhí)行”,如果當(dāng)前被加載的實體有關(guān)聯(lián)實體(associations),此關(guān)聯(lián)實體可被接下來的訪問加載。
IList與List 通俗一點講,只能存放同一類型的元素,強類型,不需轉(zhuǎn)換。
ArrayList:數(shù)組可存放不同的類型。元素都轉(zhuǎn)Object,所以需要強制轉(zhuǎn)換一下。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。