ASP.NET Tutorial/Collections/IEnumerator
Iteraion
<source lang="csharp">
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="IterationExamples" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server">
<title>Iteration Examples</title>
</head> <body>
<form id="form1" runat="server">
Iteration Examples
This example illustrates the different ways you can iterate through a collection <asp:Label ID="labMsg" runat="server" />
</form>
</body> </html> File: Default.aspx.cs using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class IterationExamples : System.Web.UI.Page {
protected void Page_Load(object sender, EventArgs e) { Customer c1 = new Customer("1", "A", "AA", "123-4567"); Customer c2 = new Customer("2", "B", "BB", "123-1267"); Customer c3 = new Customer("3", "C", "CC", "123-7823"); Customer c4 = new Customer("4", "D", "DD", "123-6383"); ArrayList myList = new ArrayList(); myList.Add(c1); myList.Add(c2); myList.Add(c3); myList.Add(c4);labMsg.Text = "
First Iteration Output (ArrayList)
";for (int i = 0; i < myList.Count; i++) { Customer c = (Customer)myList[i]; labMsg.Text += c.FirstName + "labMsg.Text += "
"; }
Second Iteration Output (ArrayList)
";foreach (Customer c in myList) { labMsg.Text += c.FirstName + "labMsg.Text += "
"; }
Third Iteration Output (ArrayList)
";IEnumerator ie = myList.GetEnumerator(); while (ie.MoveNext()) { Customer c = (Customer)ie.Current; labMsg.Text += c.FirstName + "labMsg.Text += "
"; } Hashtable myTable = new Hashtable(); myTable.Add(c1.Id, c1); myTable.Add(c2.Id, c2); myTable.Add(c3.Id, c3); myTable.Add(c4.Id, c4);
Fourth Iteration Output (Hashtable)
";foreach (DictionaryEntry de in myTable) { Customer c = (Customer)de.Value; labMsg.Text += c.FirstName + "labMsg.Text += "
"; }
Fifth Iteration Output (Hashtable)
";foreach (Customer c in myTable.Values) { labMsg.Text += c.FirstName + "
"; } }
} public abstract class AbstractEntity {
private string _id; public AbstractEntity(string id) { _id = id; }
public string Id { get { return _id; } set { _id = value; } }
public abstract bool IsValid { get; }
} public class Customer: AbstractEntity {
private string _firstName; private string _lastName; private string _phone; public Customer(string id, string firstName, string lastName, string phone): base(id) { _firstName = firstName; _lastName = lastName; _phone = phone; }
public string FirstName { get { return _firstName; } set { _firstName = value; } } public string LastName { get { return _lastName; } set { _lastName = value; } } public string Phone { get { return _phone; } set { _phone = value; } } public string Name { get { return LastName + ", " + FirstName; } } public override bool IsValid { get { if (Id.Length > 0 && LastName.Length > 0) return true; else return false; } } public override string ToString() { return Id + "," + Name + "," + Phone; }
}</source>
Iteration Examples Generics
<source lang="csharp">
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="IterationExamplesGenerics" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server">
<title>Iteration Examples Generics</title>
</head> <body>
<form id="form1" runat="server">
Generics Iteration Examples
This example illustrates the different ways you can iterate through a generic collection <asp:Label ID="labMsg" runat="server" />
</form>
</body> </html> File: Default.aspx.cs using System; using System.Data; using System.Configuration; using System.Collections.Generic; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class IterationExamplesGenerics : System.Web.UI.Page {
protected void Page_Load(object sender, EventArgs e) { Customer c1 = new Customer("1", "A", "AA", "123-4567"); Customer c2 = new Customer("2", "B", "BB", "123-1267"); Customer c3 = new Customer("3", "C", "CC", "123-7823"); Customer c4 = new Customer("4", "D", "DD", "123-6383"); List<Customer> myList = new List<Customer>(); myList.Add(c1); myList.Add(c2); myList.Add(c3); myList.Add(c4);labMsg.Text = "
First Iteration Output (List)
";for (int i = 0; i < myList.Count; i++) { Customer c = myList[i]; labMsg.Text += c.FirstName + "labMsg.Text += "
"; }
Second Iteration Output (List)
";foreach (Customer c in myList) { labMsg.Text += c.FirstName + "labMsg.Text += "
"; }
Third Iteration Output (List)
";IEnumerator<Customer> ie = myList.GetEnumerator(); while (ie.MoveNext()) { Customer c = ie.Current; labMsg.Text += c.FirstName + "labMsg.Text += "
"; } Dictionary<string,Customer> dict = new Dictionary<string,Customer>(); dict.Add(c1.Id, c1); dict.Add(c2.Id, c2); dict.Add(c3.Id, c3); dict.Add(c4.Id, c4);
Fourth Iteration Output (Dictionary)
";foreach (KeyValuePair<string, Customer> pair in dict) { Customer c = pair.Value; labMsg.Text += c.FirstName + "labMsg.Text += "
"; }
Fifth Iteration Output (Dictionary)
";foreach (Customer c in dict.Values) { labMsg.Text += c.FirstName + "
"; } }
} public abstract class AbstractEntity {
private string _id; public AbstractEntity(string id) { _id = id; }
public string Id { get { return _id; } set { _id = value; } }
public abstract bool IsValid { get; }
} public class Customer: AbstractEntity {
private string _firstName; private string _lastName; private string _phone; public Customer(string id, string firstName, string lastName, string phone): base(id) { _firstName = firstName; _lastName = lastName; _phone = phone; }
public string FirstName { get { return _firstName; } set { _firstName = value; } } public string LastName { get { return _lastName; } set { _lastName = value; } } public string Phone { get { return _phone; } set { _phone = value; } } public string Name { get { return LastName + ", " + FirstName; } } public override bool IsValid { get { if (Id.Length > 0 && LastName.Length > 0) return true; else return false; } } public override string ToString() { return Id + "," + Name + "," + Phone; }
}</source>