Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
ListChunk.cs
Go to the documentation of this file.
1
using
System.Collections
;
2
using
System.Collections.Generic
;
3
4
namespace
System.Linq.Parallel
;
5
6
internal
sealed
class
ListChunk
<
TInputOutput
> :
IEnumerable
<TInputOutput>,
IEnumerable
7
{
8
internal
TInputOutput
[]
_chunk
;
9
10
private
int
_chunkCount
;
11
12
private
ListChunk<TInputOutput>
_nextChunk
;
13
14
private
ListChunk<TInputOutput>
_tailChunk
;
15
16
internal
ListChunk<TInputOutput>
Next
=>
_nextChunk
;
17
18
internal
int
Count
=>
_chunkCount
;
19
20
internal
ListChunk
(
int
size
)
21
{
22
_chunk
=
new
TInputOutput
[
size
];
23
_chunkCount
= 0;
24
_tailChunk
=
this
;
25
}
26
27
internal
void
Add
(
TInputOutput
e)
28
{
29
ListChunk<TInputOutput>
listChunk
=
_tailChunk
;
30
if
(
listChunk
._chunkCount ==
listChunk
._chunk.Length)
31
{
32
_tailChunk
=
new
ListChunk<TInputOutput>
(
listChunk
._chunkCount * 2);
33
listChunk
= (listChunk._nextChunk =
_tailChunk
);
34
}
35
listChunk
._chunk[
listChunk
._chunkCount++] = e;
36
}
37
38
public
IEnumerator<TInputOutput>
GetEnumerator
()
39
{
40
for
(
ListChunk<TInputOutput>
curr
=
this
;
curr
!=
null
;
curr
=
curr
._nextChunk)
41
{
42
for
(
int
i = 0; i <
curr
._chunkCount; i++)
43
{
44
yield
return
curr
._chunk[i];
45
}
46
}
47
}
48
49
IEnumerator
IEnumerable
.
GetEnumerator
()
50
{
51
return
((
IEnumerable<TInputOutput>
)
this
).
GetEnumerator
();
52
}
53
}
System.Collections.Generic.Dictionary.GetEnumerator
Enumerator GetEnumerator()
Definition
Dictionary.cs:984
System.Collections.Generic.Dictionary
Definition
Dictionary.cs:14
System.Linq.Parallel.ListChunk._chunk
TInputOutput[] _chunk
Definition
ListChunk.cs:8
System.Linq.Parallel.ListChunk._chunkCount
int _chunkCount
Definition
ListChunk.cs:10
System.Linq.Parallel.ListChunk._tailChunk
ListChunk< TInputOutput > _tailChunk
Definition
ListChunk.cs:14
System.Linq.Parallel.ListChunk.GetEnumerator
IEnumerator< TInputOutput > GetEnumerator()
Definition
ListChunk.cs:38
System.Linq.Parallel.ListChunk.Count
int Count
Definition
ListChunk.cs:18
System.Linq.Parallel.ListChunk.ListChunk
ListChunk(int size)
Definition
ListChunk.cs:20
System.Linq.Parallel.ListChunk.Add
void Add(TInputOutput e)
Definition
ListChunk.cs:27
System.Linq.Parallel.ListChunk.Next
ListChunk< TInputOutput > Next
Definition
ListChunk.cs:16
System.Linq.Parallel.ListChunk._nextChunk
ListChunk< TInputOutput > _nextChunk
Definition
ListChunk.cs:12
System.Linq.Parallel.ListChunk
Definition
ListChunk.cs:7
System.Collections.Generic.IEnumerable.GetEnumerator
new IEnumerator< T > GetEnumerator()
System.Collections.Generic.IEnumerable
Definition
IEnumerable.cs:4
System.Collections.Generic.IEnumerator
Definition
IEnumerator.cs:4
System.Collections.Generic
Definition
IHashKeyCollection.cs:1
System.Collections
Definition
BlockingCollection.cs:8
System.Linq.Parallel
Definition
AnyAllSearchOperator.cs:5
System.Linq.ExceptionArgument.size
@ size
source
System.Linq.Parallel
System.Linq.Parallel
ListChunk.cs
Generated by
1.10.0