Tuple.cs
Go to the documentation of this file.
1 //
2 // Tuple.cs
3 //
4 // Authors:
5 // Zoltan Varga (vargaz@gmail.com)
6 //
7 // Copyright (C) 2009 Novell
8 //
9 // Permission is hereby granted, free of charge, to any person obtaining
10 // a copy of this software and associated documentation files (the
11 // "Software"), to deal in the Software without restriction, including
12 // without limitation the rights to use, copy, modify, merge, publish,
13 // distribute, sublicense, and/or sell copies of the Software, and to
14 // permit persons to whom the Software is furnished to do so, subject to
15 // the following conditions:
16 //
17 // The above copyright notice and this permission notice shall be
18 // included in all copies or substantial portions of the Software.
19 //
20 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
21 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
23 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
24 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
25 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
26 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27 //
28 
29 #if NET_4_0
30 
31 using System;
32 
33 namespace System
34 {
35  public static class Tuple
36  {
37  public static Tuple<T1, T2, T3, T4, T5, T6, T7, Tuple<T8>> Create<T1, T2, T3, T4, T5, T6, T7, T8>
38  (
39  T1 item1,
40  T2 item2,
41  T3 item3,
42  T4 item4,
43  T5 item5,
44  T6 item6,
45  T7 item7,
46  T8 item8) {
47  return new Tuple<T1, T2, T3, T4, T5, T6, T7, Tuple<T8>> (item1, item2, item3, item4, item5, item6, item7, new Tuple<T8> (item8));
48  }
49 
50  public static Tuple<T1, T2, T3, T4, T5, T6, T7> Create<T1, T2, T3, T4, T5, T6, T7>
51  (
52  T1 item1,
53  T2 item2,
54  T3 item3,
55  T4 item4,
56  T5 item5,
57  T6 item6,
58  T7 item7) {
59  return new Tuple<T1, T2, T3, T4, T5, T6, T7> (item1, item2, item3, item4, item5, item6, item7);
60  }
61 
62  public static Tuple<T1, T2, T3, T4, T5, T6> Create<T1, T2, T3, T4, T5, T6>
63  (
64  T1 item1,
65  T2 item2,
66  T3 item3,
67  T4 item4,
68  T5 item5,
69  T6 item6) {
70  return new Tuple<T1, T2, T3, T4, T5, T6> (item1, item2, item3, item4, item5, item6);
71  }
72 
73  public static Tuple<T1, T2, T3, T4, T5> Create<T1, T2, T3, T4, T5>
74  (
75  T1 item1,
76  T2 item2,
77  T3 item3,
78  T4 item4,
79  T5 item5) {
80  return new Tuple<T1, T2, T3, T4, T5> (item1, item2, item3, item4, item5);
81  }
82 
83  public static Tuple<T1, T2, T3, T4> Create<T1, T2, T3, T4>
84  (
85  T1 item1,
86  T2 item2,
87  T3 item3,
88  T4 item4) {
89  return new Tuple<T1, T2, T3, T4> (item1, item2, item3, item4);
90  }
91 
92  public static Tuple<T1, T2, T3> Create<T1, T2, T3>
93  (
94  T1 item1,
95  T2 item2,
96  T3 item3) {
97  return new Tuple<T1, T2, T3> (item1, item2, item3);
98  }
99 
100  public static Tuple<T1, T2> Create<T1, T2>
101  (
102  T1 item1,
103  T2 item2) {
104  return new Tuple<T1, T2> (item1, item2);
105  }
106 
107  public static Tuple<T1> Create<T1>
108  (
109  T1 item1) {
110  return new Tuple<T1> (item1);
111  }
112  }
113 }
114 
115 #endif