FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
UnityCsReference/Editor/Mono/ArrayUtility.cs at master · codeimpossible/UnityCsReference · GitHub
codeimpossible
/
UnityCsReference
Public
forked from
Unity-Technologies/UnityCsReference
Notifications
You must be signed in to change notification settings
Fork
0
Star
0
Code
Pull requests
0
Actions
Projects
Security and quality
0
Insights
Additional navigation options
Code
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
UnityCsReference
/
Editor
/
Mono
/
ArrayUtility.cs
Copy path
More file actions
More file actions
Latest commit
History
History
History
138 lines (119 loc) · 4.18 KB
Breadcrumbs
UnityCsReference
/
Editor
/
Mono
/
ArrayUtility.cs
Copy path
File metadata and controls
138 lines (119 loc) · 4.18 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
// Unity C# reference source
// Copyright (c) Unity Technologies. For terms of use, see
// https://unity3d.com/legal/licenses/Unity_Reference_Only_License
using
System
;
using
System
.
Collections
;
using
System
.
Collections
.
Generic
;
namespace
UnityEditor
{
// Helpers for builtin arrays ...
// These are O(n) operations (where List<T>() is used) - the arrays are actually copied (http://msdn.microsoft.com/en-us/library/fkbw11z0.aspx)
// but its pretty helpful for now
public
static
class
ArrayUtility
{
//appends ''item'' to the end of ''array''
public
static
void
Add
<
T
>
(
ref
T
[
]
array
,
T
item
)
{
System
.
Array
.
Resize
(
ref
array
,
array
.
Length
+
1
)
;
array
[
array
.
Length
-
1
]
=
item
;
}
//compares two arrays
public
static
bool
ArrayEquals
<
T
>
(
T
[
]
lhs
,
T
[
]
rhs
)
{
if
(
lhs
==
null
||
rhs
==
null
)
return
lhs
==
rhs
;
if
(
lhs
.
Length
!=
rhs
.
Length
)
return
false
;
for
(
int
i
=
0
;
i
<
lhs
.
Length
;
i
++
)
{
if
(
!
lhs
[
i
]
.
Equals
(
rhs
[
i
]
)
)
return
false
;
}
return
true
;
}
//compares two arrays
public
static
bool
ArrayReferenceEquals
<
T
>
(
T
[
]
lhs
,
T
[
]
rhs
)
{
if
(
lhs
==
null
||
rhs
==
null
)
return
lhs
==
rhs
;
if
(
lhs
.
Length
!=
rhs
.
Length
)
return
false
;
for
(
int
i
=
0
;
i
<
lhs
.
Length
;
i
++
)
{
if
(
!
object
.
ReferenceEquals
(
lhs
[
i
]
,
rhs
[
i
]
)
)
return
false
;
}
return
true
;
}
//appends items to the end of array
public
static
void
AddRange
<
T
>
(
ref
T
[
]
array
,
T
[
]
items
)
{
int
size
=
array
.
Length
;
System
.
Array
.
Resize
(
ref
array
,
array
.
Length
+
items
.
Length
)
;
for
(
int
i
=
0
;
i
<
items
.
Length
;
i
++
)
array
[
size
+
i
]
=
items
[
i
]
;
}
//inserts item ''item'' at position ''index''
public
static
void
Insert
<
T
>
(
ref
T
[
]
array
,
int
index
,
T
item
)
{
ArrayList
a
=
new
ArrayList
(
)
;
a
.
AddRange
(
array
)
;
a
.
Insert
(
index
,
item
)
;
array
=
a
.
ToArray
(
typeof
(
T
)
)
as
T
[
]
;
}
//removes ''item'' from ''array''
public
static
void
Remove
<
T
>
(
ref
T
[
]
array
,
T
item
)
{
List
<
T
>
newList
=
new
List
<
T
>
(
array
)
;
newList
.
Remove
(
item
)
;
array
=
newList
.
ToArray
(
)
;
}
public
static
List
<
T
>
FindAll
<
T
>
(
T
[
]
array
,
Predicate
<
T
>
match
)
{
List
<
T
>
list
=
new
List
<
T
>
(
array
)
;
return
list
.
FindAll
(
match
)
;
}
public
static
T
Find
<
T
>
(
T
[
]
array
,
Predicate
<
T
>
match
)
{
List
<
T
>
list
=
new
List
<
T
>
(
array
)
;
return
list
.
Find
(
match
)
;
}
//Find the index of the first element that satisfies the predicate
public
static
int
FindIndex
<
T
>
(
T
[
]
array
,
Predicate
<
T
>
match
)
{
List
<
T
>
list
=
new
List
<
T
>
(
array
)
;
return
list
.
FindIndex
(
match
)
;
}
//index of first element with value ''value''
public
static
int
IndexOf
<
T
>
(
T
[
]
array
,
T
value
)
{
List
<
T
>
list
=
new
List
<
T
>
(
array
)
;
return
list
.
IndexOf
(
value
)
;
}
//index of the last element with value ''value''
public
static
int
LastIndexOf
<
T
>
(
T
[
]
array
,
T
value
)
{
List
<
T
>
list
=
new
List
<
T
>
(
array
)
;
return
list
.
LastIndexOf
(
value
)
;
}
//remove element at position ''index''
public
static
void
RemoveAt
<
T
>
(
ref
T
[
]
array
,
int
index
)
{
List
<
T
>
list
=
new
List
<
T
>
(
array
)
;
list
.
RemoveAt
(
index
)
;
array
=
list
.
ToArray
(
)
;
}
//determines if the array contains the item
public
static
bool
Contains
<
T
>
(
T
[
]
array
,
T
item
)
{
List
<
T
>
list
=
new
List
<
T
>
(
array
)
;
return
list
.
Contains
(
item
)
;
}
//Clears the array
public
static
void
Clear
<
T
>
(
ref
T
[
]
array
)
{
System
.
Array
.
Clear
(
array
,
0
,
array
.
Length
)
;
System
.
Array
.
Resize
(
ref
array
,
0
)
;
}
}
}
Back
|
FazBrowse Home
|
New Git URL