ListItemCollection 클래스

정의

목록 컨트롤에 있는 ListItem 개체의 컬렉션입니다.A collection of ListItem objects in a list control. 이 클래스는 상속될 수 없습니다.This class cannot be inherited.

public ref class ListItemCollection sealed : System::Collections::IList, System::Web::UI::IStateManager
public sealed class ListItemCollection : System.Collections.IList, System.Web.UI.IStateManager
type ListItemCollection = class
    interface ICollection
    interface IEnumerable
    interface IList
    interface IStateManager
Public NotInheritable Class ListItemCollection
Implements IList, IStateManager
상속
ListItemCollection
구현

예제

다음 코드 예제를 만드는 방법을 보여 ListItemCollection 개체를 컬렉션에 항목을 추가 하 고 컬렉션에서 항목을 제거 합니다.The following code example demonstrates creating ListItemCollection objects, adding items to the collections, and removing items from the collections. 예에서는 ListItemCollection 라는 listBoxData 에 대 한 데이터 원본으로 사용 되는 ListBox 이라는 컨트롤 ListBox1, 및 ListItemCollection 호출 ddBoxData 에 대 한 데이터 원본으로 사용 되는 DropDownList 이라는컨트롤DropDownList1.In the example, the ListItemCollection named listBoxData is used as the data source for a ListBox control called ListBox1, and the ListItemCollection called ddBoxData is used as the data source for a DropDownList control called DropDownList1.

<%@ Page language="C#" AutoEventWireup="true" %>
<%@ Import Namespace="System.Data" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
    private void Page_Load(object sender, System.EventArgs e)
    {
        // If this isn't the first time the page is loaded in this session,
        // then don't recreate the DataTables.
        if (!IsPostBack)
        {
// <Snippet5>
            // Create a new ListItemCollection.
            ListItemCollection listBoxData = new ListItemCollection();
            // Add items to the collection.
            listBoxData.Add(new ListItem("apples"));
            listBoxData.Add(new ListItem("bananas"));
            listBoxData.Add(new ListItem("cherries"));
            listBoxData.Add("grapes");
            listBoxData.Add("mangos");
            listBoxData.Add("oranges");
            // Set the ListItemCollection as the data source for ListBox1.
            ListBox1.DataSource = listBoxData;
            ListBox1.DataBind();
//</Snippet5>

            // Create a new ListItemCollection.
            ListItemCollection ddBoxData = new ListItemCollection();
            // For now, just bind the data to the DropDownList.
            DropDownList1.DataSource = ddBoxData;
            DropDownList1.DataBind();
        }        
    }

    private void moveButton1_Click(object sender, System.EventArgs e)
    {
//<Snippet6>
        //Set the SelectedIndex to -1 so no items are selected.
        // The new item will be set as the selected item when it is added.
        DropDownList1.SelectedIndex = -1;
        // Add the selected item to DropDownList1.
        DropDownList1.Items.Add(ListBox1.SelectedItem);
        // Delete the selected item from ListBox1.
        ListBox1.Items.Remove(ListBox1.SelectedItem);
//</Snippet6>
    }

    private void moveButton2_Click(object sender, System.EventArgs e)
    {
        //Set the SelectedIndex to -1 so no items are selected.
        // The new item will be set as the selected item when it is added.
        ListBox1.SelectedIndex = -1;
        // Add the selected item to ListBox1.
        ListBox1.Items.Add(DropDownList1.SelectedItem);
        //Delete the selected item from DropDownList1.
        DropDownList1.Items.Remove(DropDownList1.SelectedItem);
    }
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
    <head>
    <title>ASP.NET Example</title>
</head>

    <body>
        <form id="form1" runat="server">
            <table cellpadding="6" border="0">
                <tr>
                    <td rowspan="2" valign="top">
                        <asp:ListBox id="ListBox1" runat="server" 
                            SelectionMode="Single" Width="100px">
                        </asp:ListBox>
                    </td>

                    <td>
                        <asp:Button id="moveButton1" runat="server" Text="Move -->"
                            Width="100px" OnClick="moveButton1_Click"></asp:Button>
                    </td>

                    <td rowspan="2" valign="top">
                        <asp:DropDownList Runat="server" ID="DropDownList1"
                            Width="100px">
                        </asp:DropDownList>
                    </td>
                </tr>

                <tr>
                    <td>
                        <asp:Button ID="moveButton2" Runat="server" Text="<-- Move"
                            Width="100px" onClick="moveButton2_Click"></asp:Button>
                    </td>
                </tr>
            </table>
        </form>
    </body>
</html>
<%@ Page language="VB" AutoEventWireup="true" %>
<%@ Import Namespace="System.Data" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
    Private Sub Page_Load(sender As Object, e As System.EventArgs) Handles MyBase.Load
        ' If this isn't the first time the page is loaded in this session,
        ' then don't recreate the DataTables.
        If Not IsPostBack Then
' <Snippet5>
            ' Create a new ListItemCollection.
            Dim listBoxData As New ListItemCollection()
            ' Add items to the collection.
            listBoxData.Add(New ListItem("apples"))
            listBoxData.Add(New ListItem("bananas"))
            listBoxData.Add(New ListItem("cherries"))
            listBoxData.Add("grapes")
            listBoxData.Add("mangos")
            listBoxData.Add("oranges")
            ' Set the ListItemCollection as the data source for ListBox1.
            ListBox1.DataSource = listBoxData
            ListBox1.DataBind()
' </Snippet5>
 
            ' Create a new ListItemCollection.
            Dim ddBoxData As New ListItemCollection()
            ' For now, just bind the data to the DropDownList.
            DropDownList1.DataSource = ddBoxData
            DropDownList1.DataBind()
        End If
    End Sub 'Page_Load

    Private Sub moveButton1_Click(sender As Object, e As System.EventArgs) 
        'Set the SelectedIndex to -1 so no items are selected.            
        ' The new item will be set as the selected item when it is added.
        DropDownList1.SelectedIndex = - 1
' <Snippet6>
        ' Add the selected item to DropDownList1.
        DropDownList1.Items.Add(ListBox1.SelectedItem)
        ' Delete the selected item from ListBox1.
        ListBox1.Items.Remove(ListBox1.SelectedItem)
' </Snippet6>
    End Sub 'moveButton1_Click
   
   
    Private Sub moveButton2_Click(sender As Object, e As System.EventArgs)
        'Set the SelectedIndex to -1 so no items are selected.
        ' The new item will be set as the selected item when it is added.
        ListBox1.SelectedIndex = - 1
        ' Add the selected item to ListBox1.
        ListBox1.Items.Add(DropDownList1.SelectedItem)
        'Delete the selected item from DropDownList1.
        DropDownList1.Items.Remove(DropDownList1.SelectedItem)
    End Sub 'moveButton2_Click
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
    <head>
    <title>ASP.NET Example</title>
</head>

    <body>
        <form id="form1" runat="server">
            <table cellpadding="6" border="0">
                <tr>
                    <td rowspan="2" valign="top">
                        <asp:ListBox id="ListBox1" runat="server" 
                            SelectionMode="Single" Width="100px">
                        </asp:ListBox>
                    </td>

                    <td>
                        <asp:Button id="moveButton1" runat="server" Text="Move -->"
                            Width="100px" OnClick="moveButton1_Click"></asp:Button>
                    </td>

                    <td rowspan="2" valign="top">
                        <asp:DropDownList Runat="server" ID="DropDownList1"
                            Width="100px">
                        </asp:DropDownList>
                    </td>
                </tr>

                <tr>
                    <td>
                        <asp:Button ID="moveButton2" Runat="server" Text="<-- Move"
                            Width="100px" onClick="moveButton2_Click"></asp:Button>
                    </td>
                </tr>
            </table>
        </form>
    </body>
</html>
<!-- This example demonstrates how to select multiple items from a DataList and add the 
selected items to a DataGrid. The example uses a foreach loop to iterate through 
the ListItem objects in the ListItemCollection of ListBox1. -->

<!-- This example demonstrates how to select multiple items from a DataList 
and add the selected items to a DataGrid. The example uses a For Each loop 
to iterate through the ListItem objects in the ListItemCollection of ListBox1. -->

<%@ Page language="c#" AutoEventWireup="true"%>
<%@ Import Namespace="System.Data" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script language="C#" runat="server">
            // Global Variables.
            private DataView dv;
            private DataTable dt = new DataTable();

            private void Page_Load(object sender, System.EventArgs e)
            {
// <Snippet4>
                // Set the number of rows displayed in the ListBox to be
                // the number of items in the ListBoxCollection.
                ListBox1.Rows = ListBox1.Items.Count;
// </Snippet4>

                // If the DataTable is already stored in the Web form's default
                // HttpSessionState variable, then don't recreate the DataTable.
                if (Session["data"] == null)
                {
                    // Add columns to the DataTable.
                    dt.Columns.Add(new DataColumn("Item"));
                    dt.Columns.Add(new DataColumn("Price"));
            // Store the DataTable in the Session variable so it can 
                    // be accessed again later.
                    Session["data"] = dt;
                    
                    // Use the table to create a DataView, because the DataGrid
                    // can only bind to a data source that implements IEnumerable.
                    dv = new DataView(dt);
            
                    // Set the DataView as the data source, and bind it to the DataGrid.
                    DataGrid1.DataSource = dv;
                    DataGrid1.DataBind();
                }
            }

            private void addButton_Click(object sender, System.EventArgs e)
            {
// <Snippet5>
                // Add the items selected in ListBox1 to DataGrid1.
                foreach (ListItem item in ListBox1.Items)
                {
                    if (item.Selected)
                    {
                        // Add the item to the DataGrid.
                        // First, get the DataTable from the Session variable.
                        dt = (DataTable)Session["data"];
            
                        if (dt != null)
                        { 
                            // Create a new DataRow in the DataTable.
                            DataRow dr = dt.NewRow();
                            // Add the item to the new DataRow.
                            dr["Item"] = item.Text;
                            // Add the item's value to the DataRow.
                            dr["Price"] = item.Value;
                            // Add the DataRow to the DataTable.
                            dt.Rows.Add(dr);
// </Snippet5>

                            // Rebind the data to DataGrid1.
                            dv = new DataView(dt);
                            DataGrid1.DataSource = dv;
                            DataGrid1.DataBind();
                        }
                    }
                }
            }
        </script>
<html xmlns="http://www.w3.org/1999/xhtml" >
    <head>
    <title> ListItemCollection Example </title>
</head>
    
    <body>
        <form id="form1" runat="server">

            <h3> ListItemCollection Example </h3>

            <table cellpadding="6" border="0">
                <tr>
                    <td valign="top">
                        <asp:ListBox id="ListBox1" runat="server" SelectionMode="Multiple">
                            <asp:ListItem Value=".89">apples</asp:ListItem>
                            <asp:ListItem Value=".49">bananas</asp:ListItem>
                            <asp:ListItem Value="2.99">cherries</asp:ListItem>
                            <asp:ListItem Value="1.49">grapes</asp:ListItem>
                            <asp:ListItem Value="2.00">mangos</asp:ListItem>
                            <asp:ListItem Value="1.09">oranges</asp:ListItem>
                        </asp:ListBox>
                    </td>

                    <td valign="top">
                        <asp:Button id="addButton" runat="server" Text="Add -->"
                            Width="100px" OnClick="addButton_Click"></asp:Button>
                    </td>

                    <td valign="top">
                        <asp:DataGrid Runat="server" ID="DataGrid1" CellPadding="4">
                        </asp:DataGrid>
                    </td>
                </tr>
            </table>        
        </form>
    </body>
</html>
<%@ Page language="VB" AutoEventWireup="true"%>
<%@ Import Namespace="System.Data" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
            ' Global Variables.
            Private dv As DataView
            Private dt As New DataTable()

            Private Sub Page_Load(sender As Object, e As System.EventArgs)
' <Snippet4>
                ' Set the number of rows displayed in the ListBox to be
                ' the number of items in the ListBoxCollection.
                ListBox1.Rows = ListBox1.Items.Count
' </Snippet4>

                ' If the DataTable is already stored in the Web form's default
                ' HttpSessionState variable, then don't recreate the DataTable.
                If Session("data") Is Nothing Then
                    ' Add columns to the DataTable.
                    dt.Columns.Add(New DataColumn("Item"))
                    dt.Columns.Add(New DataColumn("Price"))
            ' Store the DataTable in the Session variable so it can be 
                    ' accessed again later.
                    Session("data") = dt
                    
                    ' Use the table to create a DataView, because the DataGrid
                    ' can only bind to a data source that implements IEnumerable.
                    dv = New DataView(dt)
            
                    ' Set the DataView as the data source, and bind it to the DataGrid.
                    DataGrid1.DataSource = dv
                    DataGrid1.DataBind()
                End If
            End Sub

            Private Sub addButton_Click(sender As Object, e As System.EventArgs)
' <Snippet5>
                ' Add the items selected in ListBox1 to DataGrid1.
                Dim item As ListItem
                For Each item In ListBox1.Items
                    If item.Selected Then
                        ' Add the item to the DataGrid.
                        ' First, get the DataTable from the Session variable.
                        dt = CType(Session("data"), DataTable)
            
                        If  Not (dt Is Nothing) Then
                            ' Create a new DataRow in the DataTable.
                            Dim dr As DataRow
                            dr = dt.NewRow()
                            ' Add the item to the new DataRow.
                            dr("Item") = item.Text
                            ' Add the item's value to the DataRow.
                            dr("Price") = item.Value
                            ' Add the DataRow to the DataTable.
                            dt.Rows.Add(dr)
' </Snippet5>

                            ' Rebind the data to DataGrid1.
                            dv = new DataView(dt)
                            DataGrid1.DataSource = dv
                            DataGrid1.DataBind()
                        End If
                    End If
                Next item
            End Sub
        </script>
<html xmlns="http://www.w3.org/1999/xhtml" >
    <head>
    <title> ListItemCollection Example </title>
</head>
    
    <body>
        <form id="form1" runat="server">

            <h3> ListItemCollection Example </h3>

            <table cellpadding="6" border="0">
                <tr>
                    <td valign="top">
                        <asp:ListBox id="ListBox1" runat="server" SelectionMode="Multiple">
                            <asp:ListItem Value=".89">apples</asp:ListItem>
                            <asp:ListItem Value=".49">bananas</asp:ListItem>
                            <asp:ListItem Value="2.99">cherries</asp:ListItem>
                            <asp:ListItem Value="1.49">grapes</asp:ListItem>
                            <asp:ListItem Value="2.00">mangos</asp:ListItem>
                            <asp:ListItem Value="1.09">oranges</asp:ListItem>
                        </asp:ListBox>
                    </td>

                    <td valign="top">
                        <asp:Button id="addButton" runat="server" Text="Add -->"
                            Width="100px" OnClick="addButton_Click"></asp:Button>
                    </td>

                    <td valign="top">
                        <asp:DataGrid Runat="server" ID="DataGrid1" CellPadding="4">
                        </asp:DataGrid>
                    </td>
                </tr>
            </table>        
        </form>
    </body>
</html>

설명

ListItemCollection 클래스는 ListItem 개체의 컬렉션을 나타냅니다.The ListItemCollection class represents a collection of ListItem objects. 합니다 ListItem 개체와 같은 목록 컨트롤에서 표시 된 항목을 나타냅니다는 ListBox합니다.The ListItem objects, in turn, represent the items displayed in list controls, such as the ListBox. 프로그래밍 방식으로 검색할 ListItem 개체 목록 컨트롤에서 다음 방법 중 하나를 사용 합니다.To programmatically retrieve ListItem objects from a list control, use one of following methods:

  • 인덱서를 사용 하 여 단일 가져옵니다 ListItem 배열 표기법을 사용 하 여 컬렉션에서 합니다.Use the indexer to get a single ListItem from the collection, using array notation.

  • 사용 하 여는 CopyTo 컬렉션의 내용을 복사 하는 메서드를 System.Array 컬렉션에서 항목을 가져오려면 다음 사용할 수 있는 개체입니다.Use the CopyTo method to copy the contents of the collection to a System.Array object, which can then be used to get items from the collection.

  • 사용 하 여는 GetEnumerator 메서드를를 System.Collections.IEnumerator 구현 된 개체를 컬렉션에서 항목을 가져오려면 다음 사용할 수 있습니다.Use the GetEnumerator method to create a System.Collections.IEnumerator implemented object, which can then be used to get items from the collection.

  • 사용 하 여 foreach (C#) 또는 For Each (Visual Basic)의 컬렉션을 반복 합니다.Use foreach (C#) or For Each (Visual Basic) to iterate through the collection.

Count 속성 컬렉션에서 항목의 총 수를 지정 하 고는 일반적으로 컬렉션의 상한을 결정 하는 데 사용 됩니다.The Count property specifies the total number of items in the collection, and is commonly used to determine the upper bound of the collection. 추가 사용 하 여 컬렉션에서 항목을 제거 합니다 AddRemove 메서드.You can add and remove items from the collection by using the Add and Remove methods.

생성자

ListItemCollection()

ListItemCollection 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the ListItemCollection class.

속성

Capacity

ListItemCollection이 저장할 수 있는 최대 항목 수를 가져오거나 설정합니다.Gets or sets the maximum number of items that the ListItemCollection can store.

Count

컬렉션에 있는 ListItem 개체의 수를 가져옵니다.Gets the number of ListItem objects in the collection.

IsReadOnly

ListItemCollection가 읽기 전용인지 여부를 나타내는 값을 가져옵니다.Gets a value indicating whether the ListItemCollection is read-only.

IsSynchronized

ListItemCollection에 대한 액세스가 동기화되어 스레드로부터 안전하게 보호되는지 여부를 나타내는 값을 가져옵니다.Gets a value indicating whether access to the ListItemCollection is synchronized (thread-safe).

Item[Int32]

컬렉션의 지정된 인덱스에 있는 ListItem을 가져옵니다.Gets a ListItem at the specified index in the collection.

SyncRoot

ListItemCollection에 대한 액세스를 동기화하는 데 사용할 수 있는 개체를 가져옵니다.Gets the object that can be used to synchronize access to the ListItemCollection.

메서드

Add(ListItem)

지정된 ListItem을 컬렉션의 끝에 추가합니다.Appends the specified ListItem to the end of the collection.

Add(String)

지정된 문자열을 나타내는 컬렉션의 끝에 ListItem을 추가합니다.Appends a ListItem to the end of the collection that represents the specified string.

AddRange(ListItem[])

컬렉션에 ListItem 개체의 배열에 있는 항목을 추가합니다.Adds the items in an array of ListItem objects to the collection.

Clear()

컬렉션에서 모든 ListItem 개체를 제거합니다.Removes all ListItem objects from the collection.

Contains(ListItem)

컬렉션에 지정된 항목이 포함되는지 여부를 결정합니다.Determines whether the collection contains the specified item.

CopyTo(Array, Int32)

지정된 인덱스에서 시작하여 ListItemCollection에서 지정된 Array로 항목을 복사합니다.Copies the items from the ListItemCollection to the specified Array, starting with the specified index.

Equals(Object)

지정한 개체와 현재 개체가 같은지 여부를 확인합니다.Determines whether the specified object is equal to the current object.

(다음에서 상속됨 Object)
FindByText(String)

지정된 텍스트와 같은 ListItem 속성을 갖는 Text을 컬렉션에서 검색합니다.Searches the collection for a ListItem with a Text property that equals the specified text.

FindByValue(String)

지정된 값을 포함하는 ListItem 속성을 갖는 컬렉션을 Value에서 검색합니다.Searches the collection for a ListItem with a Value property that contains the specified value.

GetEnumerator()

IEnumerator에 모든 ListItem 개체를 포함하는 구현된 ListItemCollection 개체를 반환합니다.Returns a IEnumerator implemented object that contains all ListItem objects in the ListItemCollection.

GetHashCode()

기본 해시 함수로 작동합니다.Serves as the default hash function.

(다음에서 상속됨 Object)
GetType()

현재 인스턴스의 Type을 가져옵니다.Gets the Type of the current instance.

(다음에서 상속됨 Object)
IndexOf(ListItem)

컬렉션에서 지정된 ListItem의 위치를 나타내는 인덱스 값을 결정합니다.Determines the index value that represents the position of the specified ListItem in the collection.

Insert(Int32, ListItem)

지정된 ListItem을 컬렉션의 지정된 인덱스 위치에 삽입합니다.Inserts the specified ListItem in the collection at the specified index location.

Insert(Int32, String)

컬렉션의 지정된 인덱스 위치에 있는 특정 문자열을 나타내는 ListItem을 삽입합니다.Inserts a ListItem which represents the specified string in the collection at the specified index location.

MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.Creates a shallow copy of the current Object.

(다음에서 상속됨 Object)
Remove(ListItem)

지정된 ListItem를 컬렉션에서 제거합니다.Removes the specified ListItem from the collection.

Remove(String)

컬렉션에서 지정된 문자열을 나타내는 ListItem을 제거합니다.Removes a ListItem from the collection that represents the specified string.

RemoveAt(Int32)

컬렉션에서 지정된 인덱스의 ListItem를 제거합니다.Removes the ListItem at the specified index from the collection.

ToString()

현재 개체를 나타내는 문자열을 반환합니다.Returns a string that represents the current object.

(다음에서 상속됨 Object)

명시적 인터페이스 구현

IList.Add(Object)

이 멤버에 대한 설명은 Add(Object)를 참조하십시오.For a description of this member, see Add(Object).

IList.Contains(Object)

이 멤버에 대한 설명은 Contains(Object)를 참조하세요.For a description of this member, see Contains(Object).

IList.IndexOf(Object)

이 멤버에 대한 설명은 IndexOf(Object)를 참조하세요.For a description of this member, see IndexOf(Object).

IList.Insert(Int32, Object)

이 멤버에 대한 설명은 Insert(Int32, Object)를 참조하세요.For a description of this member, see Insert(Int32, Object).

IList.IsFixedSize

이 멤버에 대한 설명은 IsFixedSize를 참조하세요.For a description of this member, see IsFixedSize.

IList.Item[Int32]

이 멤버에 대한 설명은 Item[Int32]를 참조하세요.For a description of this member, see Item[Int32].

IList.Remove(Object)

이 멤버에 대한 설명은 Remove(Object)를 참조하세요.For a description of this member, see Remove(Object).

IStateManager.IsTrackingViewState

이 멤버에 대한 설명은 IsTrackingViewState를 참조하세요.For a description of this member, see IsTrackingViewState.

IStateManager.LoadViewState(Object)

이전에 저장된 상태를 로드합니다.Loads the previously saved state.

IStateManager.SaveViewState()

상태 변경 내용이 포함된 개체를 반환합니다.Returns object containing state changes.

IStateManager.TrackViewState()

상태 변경 추적을 시작합니다.Starts tracking state of changes.

확장 메서드

Cast<TResult>(IEnumerable)

IEnumerable의 요소를 지정된 형식으로 캐스팅합니다.Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable)

지정된 형식에 따라 IEnumerable의 요소를 필터링합니다.Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable)

쿼리를 병렬화할 수 있도록 합니다.Enables parallelization of a query.

AsQueryable(IEnumerable)

IEnumerableIQueryable로 변환합니다.Converts an IEnumerable to an IQueryable.

적용 대상

추가 정보