Merge pull request #866 from linquize/content-type-encoding
[mono.git] / mcs / class / dlr / Runtime / Microsoft.Dynamic / CollectionExtensions.cs
1 /* ****************************************************************************
2  *
3  * Copyright (c) Microsoft Corporation. 
4  *
5  * This source code is subject to terms and conditions of the Microsoft Public License. A 
6  * copy of the license can be found in the License.html file at the root of this distribution. If 
7  * you cannot locate the  Microsoft Public License, please send an email to 
8  * dlr@microsoft.com. By using this source code in any fashion, you are agreeing to be bound 
9  * by the terms of the Microsoft Public License.
10  *
11  * You must not remove this notice, or any other, from this software.
12  *
13  *
14  * ***************************************************************************/
15 using System; using Microsoft;
16
17
18 using System.Collections.Generic;
19 using System.Collections.ObjectModel;
20 using System.Diagnostics;
21
22 #if CODEPLEX_40
23 namespace System.Dynamic {
24 #else
25 namespace Microsoft.Scripting {
26 #endif
27     internal static class CollectionExtensions { 
28
29         internal static T[] RemoveFirst<T>(this T[] array) {
30             T[] result = new T[array.Length - 1];
31             Array.Copy(array, 1, result, 0, result.Length);
32             return result;
33         }
34
35         internal static T[] AddFirst<T>(this IList<T> list, T item) {
36             T[] res = new T[list.Count + 1];
37             res[0] = item;
38             list.CopyTo(res, 1);
39             return res;
40         }
41
42         internal static T[] ToArray<T>(this IList<T> list) {
43             T[] res = new T[list.Count];
44             list.CopyTo(res, 0);
45             return res;
46         }
47
48         internal static T[] AddLast<T>(this IList<T> list, T item) {
49             T[] res = new T[list.Count + 1];
50             list.CopyTo(res, 0);
51             res[list.Count] = item;
52             return res;
53         }
54     }
55 }