summaryrefslogtreecommitdiff
path: root/src/mscorlib/src/System/Collections/Generic/IList.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/mscorlib/src/System/Collections/Generic/IList.cs')
-rw-r--r--src/mscorlib/src/System/Collections/Generic/IList.cs54
1 files changed, 54 insertions, 0 deletions
diff --git a/src/mscorlib/src/System/Collections/Generic/IList.cs b/src/mscorlib/src/System/Collections/Generic/IList.cs
new file mode 100644
index 0000000000..75ca0a9b00
--- /dev/null
+++ b/src/mscorlib/src/System/Collections/Generic/IList.cs
@@ -0,0 +1,54 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+/*============================================================
+**
+** Interface: IList
+**
+**
+**
+**
+** Purpose: Base interface for all generic lists.
+**
+**
+===========================================================*/
+namespace System.Collections.Generic {
+
+ using System;
+ using System.Collections;
+ using System.Runtime.CompilerServices;
+ using System.Diagnostics.Contracts;
+
+ // An IList is an ordered collection of objects. The exact ordering
+ // is up to the implementation of the list, ranging from a sorted
+ // order to insertion order.
+
+ // Note that T[] : IList<T>, and we want to ensure that if you use
+ // IList<YourValueType>, we ensure a YourValueType[] can be used
+ // without jitting. Hence the TypeDependencyAttribute on SZArrayHelper.
+ // This is a special workaround internally though - see VM\compile.cpp.
+ // The same attribute is on IEnumerable<T> and ICollection<T>.
+ [TypeDependencyAttribute("System.SZArrayHelper")]
+ public interface IList<T> : ICollection<T>
+ {
+ // The Item property provides methods to read and edit entries in the List.
+ T this[int index] {
+ get;
+ set;
+ }
+
+ // Returns the index of a particular item, if it is in the list.
+ // Returns -1 if the item isn't in the list.
+ int IndexOf(T item);
+
+ // Inserts value into the list at position index.
+ // index must be non-negative and less than or equal to the
+ // number of elements in the list. If index equals the number
+ // of items in the list, then value is appended to the end.
+ void Insert(int index, T item);
+
+ // Removes the item at position index.
+ void RemoveAt(int index);
+ }
+}