1
1
using System ;
2
2
using System . Collections ;
3
3
using System . Collections . Generic ;
4
+ using System . Linq ;
4
5
5
6
namespace NHibernate . Util
6
7
{
8
+ //Since v5.1
9
+ [ Obsolete ( "This class has no more usages and will be removed in next major version." ) ]
7
10
public static class EnumerableExtensions
8
11
{
12
+ //Since v5.1
13
+ [ Obsolete ( "Please use Enumerable.Any<T>(IEnumerable<T>) instead." ) ]
9
14
public static bool Any ( this IEnumerable source )
10
15
{
11
- if ( source == null )
12
- {
13
- throw new ArgumentNullException ( "source" ) ;
14
- }
15
- using ( DisposableEnumerator enumerator = source . GetDisposableEnumerator ( ) )
16
- {
17
- if ( enumerator . MoveNext ( ) )
18
- {
19
- return true ;
20
- }
21
- }
22
- return false ;
16
+ return Enumerable . Any ( source . Cast < object > ( ) ) ;
23
17
}
24
18
19
+ //Since v5.1
20
+ [ Obsolete ( "Please use Enumerable.First<T>(IEnumerable<T>) instead." ) ]
25
21
public static object First ( this IEnumerable source )
26
22
{
27
- if ( source == null )
28
- {
29
- throw new ArgumentNullException ( "source" ) ;
30
- }
31
- IList collection = source as IList ;
32
- if ( collection != null )
33
- {
34
- if ( collection . Count > 0 )
35
- {
36
- return collection [ 0 ] ;
37
- }
38
- }
39
- else
40
- {
41
- using ( DisposableEnumerator enumerator = source . GetDisposableEnumerator ( ) )
42
- {
43
- if ( enumerator . MoveNext ( ) )
44
- {
45
- return enumerator . Current ;
46
- }
47
- }
48
- }
49
- throw new InvalidOperationException ( "Sequence contains no elements" ) ;
23
+ return Enumerable . First ( source . Cast < object > ( ) ) ;
50
24
}
51
25
26
+ //Since v5.1
27
+ [ Obsolete ( "Please use Enumerable.FirstOrDefault<T>(IEnumerable<T>) instead." ) ]
52
28
public static object FirstOrNull ( this IEnumerable source )
53
29
{
54
- if ( source == null )
55
- {
56
- throw new ArgumentNullException ( "source" ) ;
57
- }
58
- IList collection = source as IList ;
59
- if ( collection != null )
60
- {
61
- if ( collection . Count > 0 )
62
- {
63
- return collection [ 0 ] ;
64
- }
65
- }
66
- else
67
- {
68
- using ( DisposableEnumerator enumerator = source . GetDisposableEnumerator ( ) )
69
- {
70
- if ( enumerator . MoveNext ( ) )
71
- {
72
- return enumerator . Current ;
73
- }
74
- }
75
- }
76
- return null ;
30
+ return Enumerable . FirstOrDefault ( source . Cast < object > ( ) ) ;
77
31
}
78
32
33
+ //Since v5.1
34
+ [ Obsolete ( "Please use a loop instead." ) ]
79
35
public static void ForEach < T > ( this IEnumerable < T > query , Action < T > method )
80
36
{
81
- foreach ( T item in query )
37
+ foreach ( var item in query )
82
38
{
83
39
method ( item ) ;
84
40
}
85
41
}
86
-
87
- private static DisposableEnumerator GetDisposableEnumerator ( this IEnumerable source )
88
- {
89
- return new DisposableEnumerator ( source ) ;
90
- }
91
-
92
- #region Nested type: DisposableEnumerator
93
-
94
- internal class DisposableEnumerator : IDisposable , IEnumerator
95
- {
96
- private readonly IEnumerator wrapped ;
97
-
98
- public DisposableEnumerator ( IEnumerable source )
99
- {
100
- wrapped = source . GetEnumerator ( ) ;
101
- }
102
-
103
- #region IDisposable Members
104
-
105
- public void Dispose ( )
106
- {
107
- var disposable = wrapped as IDisposable ;
108
- if ( disposable != null )
109
- {
110
- disposable . Dispose ( ) ;
111
- }
112
- }
113
-
114
- #endregion
115
-
116
- #region IEnumerator Members
117
-
118
- public bool MoveNext ( )
119
- {
120
- return wrapped . MoveNext ( ) ;
121
- }
122
-
123
- public void Reset ( )
124
- {
125
- wrapped . Reset ( ) ;
126
- }
127
-
128
- public object Current
129
- {
130
- get { return wrapped . Current ; }
131
- }
132
-
133
- #endregion
134
- }
135
-
136
- #endregion
137
42
}
138
- }
43
+ }
0 commit comments