Birçok ASP standart nesnesi koleksiyonları destekler. Koleksiyon; numara, nesne ya da başka değerleri saklamak için kullanılabilecek bir yerdir. Koleksiyonlar da dizilere benzer ama eleman ekledikçe ve eleman silindikçe koleksiyonların boyu değişebilir. Dizilerin aksine bir elemanın yeri koleksiyonlar değiştirildikçe değişir. Koleksiyonun bir elemanına adıyla, dizin numarasıyla erişebilirsiniz.
Bir Elemana Adı ya da Dizin Numarasıyla Erişmek
Koleksiyondaki özel bir elemana adıyla erişebilirsiniz. Örneğin Contents koleksiyonu Session nesnesinde saklanan değişkenleri tutar. Ayrıca Server.CreateObject ile yaratılan bütün nesneleri de tutar. Aşağıdaki bilgileri Session nesnesinde sakladığınızı düşünün:
<%
Session.Contents(”Adi”) = “Mustafa”
Session.Contents(”Soyadi”) = “Aydıner”
%>
Bir nesneye, o nesneyi koleksiyona saklarken kullandığınız isimle erişebilirsiniz. Örneğin aşağıdaki deyim “Mustafa” kelimesini döndürür:
<%= Session.Contents(”Adi”) %>
Bir elemana aynı zamanda onunla ilgili bir dizin numarasıyla da erişebilirsiniz. Örneğin aşağıdaki deyim Session nesnesinin ikinci alanındaki bilgiyi döndürür.
<%= Session.Contents(2) %>
ASP koleksiyonları 1 le başlayarak numaralandırılır. Bir elemanla ilişkili numara koleksiyona eleman eklendikçe ya da koleksiyondan eleman silindikçe değişebilir. Eleman numarasının aynı kalacağını düşünmemelisiniz. Dizinli erişim genelde takip eden kesimde anlatıldığı gibi bir koleksiyonun elemanlarına sıradan erişmek gerektiğinde ya da yalnız okunur bir koleksiyona erişildiğinde kullanınır.
Bir Koleksiyona Sıradan Erişim
Bir koleksiyonun elemanlarına sıradan da erişebilirsiniz. Koleksiyona sıradan erişmek için koleksiyonun ismini kullanmalısınız. Örneğin VBScript’in For..Each deyimlerini kullanarak Session nesnesinde sakladığınız elemanlara erişebilirsiniz:
<%
Dim ItemFor Each Item in Session.Contents
Response.Write Session.Contents(Item) & “<BR>”
Next
%>
Bir koleksiyonda saklanan elemanların sayısını belirlemek için Count deyimi kullanılır. Count deyimi, VBScript’in For..Next deyimleri ile kullanılarak da koleksiyonun elemanlarına sıradan erişilebilir:
<%
Dim ItemFor Item = 1 to Session.Contents.Count
Response.Write Session.Contents(Item) & “<BR>”
Next
%>
JScript’te de for deyimi kullanarak koleksiyonun elemanlarına erişebilirsiniz. Aşağıdaki örnekteki tekniği kullanmanız tavsiye edilir:
<%
var item, numitems;
numitems = Session.Contents.Count;
for (item = 1; item <= numitems; item++) {
Response.Write(Session.Contents(item) + “<BR>”)
}
%>
Microsoft JScript sürüm 3.0 da tanıtılan Enumerator nesnesini de bu amaçla kullanabilirsiniz:
<%
var mycoll = new Enumerator(Session.Contents);while (!mycoll.atEnd()) {
var x = mycoll.item();
Response.Write(Session.Contents(x) + “<BR>”);
mycoll.moveNext();
}
%>
Not; Bu yazı 04 Aralık 2003 tarihinde http://www.sorucevap.com/uyeler/dersler.asp?maxiturk adresinde tarafımca yayınlanmıştır.
Kolay Gelsin