-
Notifications
You must be signed in to change notification settings - Fork 11
/
MyArray.cs
77 lines (73 loc) · 1.82 KB
/
MyArray.cs
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
using System;
namespace simpleDemo
{
public partial class MyArray
{
/// <summary>
/// 数组容量
/// </summary>
private string[] array = new string[4];
/// <summary>
/// 数组元素个数
/// </summary>
private int count = 0;
/// <summary>
/// 当前数组的长度
/// </summary>
public int Length
{
get
{
return count;
}
}
/// <summary>
/// 添加元素
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public MyArray Add(string str)
{
//要溢出的时候扩容
if (count == array.Length)
{
string[] newArray = new string[2 * array.Length];
array.CopyTo(newArray, 0);
array = newArray;//array重新指向
}
array[count++] = str;
return this;
}
/// <summary>
/// 移除某一项
/// </summary>
/// <param name="i"></param>
/// <returns></returns>
public MyArray RemoveAt(int i)
{
for (int j = i; j < count - 1; j++)
{
array[j] = array[j + 1];
}
array[count - 1] = string.Empty;//add 干掉移除的数组
count--;//少了一个元素所以--
return this;
}
/// <summary>
/// 索引器
/// </summary>
/// <param name="index"></param>
/// <returns></returns>
public string this[int index]
{
get
{
return array[index];
}
set
{
array[index] = value;
}
}
}
}