ASP.NET Tutorial/Collections/List
Generics
<source lang="csharp">
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="UsingGenerics" %> <!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>Using Generics</title>
</head> <body>
<form id="form1" runat="server">
Using Generics
These two list boxes illustrates the use of two GenericList
collections <asp:ListBox ID="lboxStrings" runat="server" /> <asp:ListBox ID="lboxCustomers" runat="server" DataTextField="Name" DataValueField="Id" /> This list boxes illustrates the use of a GenericDictionary
collection <asp:ListBox ID="lboxDictionary" runat="server" DataTextField="Value" DataValueField="Key" />
</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; using System.Collections.Generic; public partial class UsingGenerics : System.Web.UI.Page {
protected void Page_Load(object sender, EventArgs e) { List<string> names = new List<string>(); names.Add("A"); names.Add("B"); names.Add("C"); lboxStrings.DataSource = names; lboxStrings.DataBind(); string temp1 = names[2]; Customer c1 = new Customer("1", "A", "AA", "123-4567"); Customer c2 = new Customer("2", "B", "BB", "123-7823"); Customer c3 = new Customer("3", "C", "CC", "123-6383"); List<Customer> customers = new List<Customer>(); customers.Add(c1); customers.Add(c2); customers.Add(c3); Customer c = customers[2]; customers[1] = c; lboxCustomers.DataSource = customers; lboxCustomers.DataBind(); Dictionary<string, Customer> dict = new Dictionary<string, Customer>(); dict.Add(c1.Id, c1); dict.Add(c2.Id, c2); lboxDictionary.DataSource = dict; lboxDictionary.DataBind(); }
} 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>