The Labs \ Source Viewer \ SSCLI \ System.ComponentModel \ ListSortDescriptionCollection

  1. //------------------------------------------------------------------------------
  2. // <copyright file="ListSortDescriptionCollection.cs" company="Microsoft">
  3. //
  4. // Copyright (c) 2006 Microsoft Corporation. All rights reserved.
  5. //
  6. // The use and distribution terms for this software are contained in the file
  7. // named license.txt, which can be found in the root of this distribution.
  8. // By using this software in any fashion, you are agreeing to be bound by the
  9. // terms of this license.
  10. //
  11. // You must not remove this notice, or any other, from this software.
  12. //
  13. // </copyright>
  14. //------------------------------------------------------------------------------
  15. namespace System.ComponentModel
  16. {
  17.     using System.Collections;
  18.     using System.Security.Permissions;
  19.    
  20.     /// <devdoc>
  21.     /// <para>[To be supplied.]</para>
  22.     /// </devdoc>
  23.     [HostProtection(SharedState = true)]
  24.     public class ListSortDescriptionCollection : IList
  25.     {
  26.         ArrayList sorts = new ArrayList();
  27.        
  28.         /// <devdoc>
  29.         /// <para>[To be supplied.]</para>
  30.         /// </devdoc>
  31.         public ListSortDescriptionCollection()
  32.         {
  33.         }
  34.        
  35.         /// <devdoc>
  36.         /// <para>[To be supplied.]</para>
  37.         /// </devdoc>
  38.         public ListSortDescriptionCollection(ListSortDescription[] sorts)
  39.         {
  40.             if (sorts != null) {
  41.                 for (int i = 0; i < sorts.Length; i++) {
  42.                     this.sorts.Add(sorts[i]);
  43.                 }
  44.             }
  45.         }
  46.        
  47.         /// <devdoc>
  48.         /// <para>[To be supplied.]</para>
  49.         /// </devdoc>
  50.         public ListSortDescription this[int index]
  51.         {
  52.             get { return (ListSortDescription)sorts[index]; }
  53.             set {
  54.                 throw new InvalidOperationException(SR.GetString(SR.CantModifyListSortDescriptionCollection));
  55.             }
  56.         }
  57.        
  58.         // IList implementation
  59.         //
  60.        
  61.         /// <devdoc>
  62.         /// <para>[To be supplied.]</para>
  63.         /// </devdoc>
  64.         bool IList.IsFixedSize {
  65.             get { return true; }
  66.         }
  67.        
  68.         /// <devdoc>
  69.         /// <para>[To be supplied.]</para>
  70.         /// </devdoc>
  71.         bool IList.IsReadOnly {
  72.             get { return true; }
  73.         }
  74.        
  75.         /// <devdoc>
  76.         /// <para>[To be supplied.]</para>
  77.         /// </devdoc>
  78.         object IList.this[int index]
  79.         {
  80.             get { return this[index]; }
  81.             set {
  82.                 throw new InvalidOperationException(SR.GetString(SR.CantModifyListSortDescriptionCollection));
  83.             }
  84.         }
  85.        
  86.         /// <devdoc>
  87.         /// <para>[To be supplied.]</para>
  88.         /// </devdoc>
  89.         int IList.Add(object value)
  90.         {
  91.             throw new InvalidOperationException(SR.GetString(SR.CantModifyListSortDescriptionCollection));
  92.         }
  93.        
  94.         /// <devdoc>
  95.         /// <para>[To be supplied.]</para>
  96.         /// </devdoc>
  97.         void IList.Clear()
  98.         {
  99.             throw new InvalidOperationException(SR.GetString(SR.CantModifyListSortDescriptionCollection));
  100.         }
  101.        
  102.         /// <devdoc>
  103.         /// <para>[To be supplied.]</para>
  104.         /// </devdoc>
  105.         public bool Contains(object value)
  106.         {
  107.             return ((IList)this.sorts).Contains(value);
  108.         }
  109.        
  110.         /// <devdoc>
  111.         /// <para>[To be supplied.]</para>
  112.         /// </devdoc>
  113.         public int IndexOf(object value)
  114.         {
  115.             return ((IList)this.sorts).IndexOf(value);
  116.         }
  117.        
  118.         /// <devdoc>
  119.         /// <para>[To be supplied.]</para>
  120.         /// </devdoc>
  121.         void IList.Insert(int index, object value)
  122.         {
  123.             throw new InvalidOperationException(SR.GetString(SR.CantModifyListSortDescriptionCollection));
  124.         }
  125.        
  126.         /// <devdoc>
  127.         /// <para>[To be supplied.]</para>
  128.         /// </devdoc>
  129.         void IList.Remove(object value)
  130.         {
  131.             throw new InvalidOperationException(SR.GetString(SR.CantModifyListSortDescriptionCollection));
  132.         }
  133.        
  134.         /// <devdoc>
  135.         /// <para>[To be supplied.]</para>
  136.         /// </devdoc>
  137.         void IList.RemoveAt(int index)
  138.         {
  139.             throw new InvalidOperationException(SR.GetString(SR.CantModifyListSortDescriptionCollection));
  140.         }
  141.        
  142.         // ICollection
  143.         //
  144.        
  145.         /// <devdoc>
  146.         /// <para>[To be supplied.]</para>
  147.         /// </devdoc>
  148.         public int Count {
  149.             get { return this.sorts.Count; }
  150.         }
  151.        
  152.         /// <devdoc>
  153.         /// <para>[To be supplied.]</para>
  154.         /// </devdoc>
  155.         bool ICollection.IsSynchronized {
  156. // true because after the constructor finished running the ListSortDescriptionCollection is Read Only
  157.             get { return true; }
  158.         }
  159.        
  160.         /// <devdoc>
  161.         /// <para>[To be supplied.]</para>
  162.         /// </devdoc>
  163.         object ICollection.SyncRoot {
  164.             get { return this; }
  165.         }
  166.        
  167.         /// <devdoc>
  168.         /// <para>[To be supplied.]</para>
  169.         /// </devdoc>
  170.         public void CopyTo(Array array, int index)
  171.         {
  172.             this.sorts.CopyTo(array, index);
  173.         }
  174.        
  175.         // IEnumerable
  176.         //
  177.        
  178.         /// <devdoc>
  179.         /// <para>[To be supplied.]</para>
  180.         /// </devdoc>
  181.         IEnumerator IEnumerable.GetEnumerator()
  182.         {
  183.             return this.sorts.GetEnumerator();
  184.         }
  185.     }
  186. }

Developer Fusion