Home
Search
C# IList ExampleUse the IList generic interface, which is implemented by the List and array types.
IList. In C# lists and arrays implement IList. This interface is an abstraction that allows list types to be used with through a single reference.
Type notes. With IList, we can create a single method to receive an int array, or a List of ints. This is powerful—it allows us to combine and reuse code.
Interface
List
An example. With IList, you must specify a type parameter. If you want your method to act upon ints, you can use IList<int>. Any type (string, object) can be specified.
Next In this program, we introduce the Display method, which receives an IList<int> parameter.
Display This method accesses the Count property and then uses the enumerator in a foreach-loop.
Property
Foreach
Info You can pass an int[] or a List<int> to the Display method. These are implicitly cast to their base interface IList<int>.
Note Arrays always implement IList<T>. The List type also implements IList<T>.
using System; using System.Collections.Generic; class Program { static void Main() { int[] array = new int[3]; array[0] = 1; array[1] = 2; array[2] = 3; Display(array); List<int> list = new List<int>(); list.Add(5); list.Add(7); list.Add(9); Display(list); } static void Display(IList<int> list) { Console.WriteLine("Count: {0}", list.Count); foreach (int value in list) { Console.WriteLine(value); } } }
Count: 3 1 2 3 Count: 3 5 7 9
IEnumerable use. Consider this alternative program—it uses IEnumerable instead of IList. With IEnumerable we do not have a Count property.
IEnumerable
But We can use the Count() extension method from LINQ on an IEnumerable. This will return the same value.
Count
using System; using System.Collections.Generic; class Program { static void Main() { Display(new int[] {1, 2}); Display(new List<int>() {1, 2}); } static void Display(IEnumerable<int> list) { foreach (int value in list) { Console.WriteLine(value); } } }
1 2 1 2
Discussion. You can also implement IList<T> for a custom class. The methods required are an indexer, the IndexOf method, the Insert method, and the RemoveAt method.
Indexer
List Insert
List Remove
A summary. We looked at the IList generic interface, which can be used as an abstraction for arrays and Lists. The IList generic interface is separate from the regular IList interface.
Home
© 2007-2022 sam allen.
see site info on the changelog.