## **删除**
Array.Clear(要删除的数组,删除的起始位置,删除元素的个数)
```
string[] arr = { "a", "b" };
Array.Clear(arr, 0, 1);
```
### 自定义
**不改变数组长度的情况下**
```
using System;
namespace ConsoleApp1
{
class Program
{
public static void Main(string[] args)
{
string[] ArrStr = new string[] { "a", "b", "c", "d", "e", "f" };
deleteArr(ArrStr,0,4);
foreach (string value in ArrStr)
{
Console.WriteLine(value+"#");
}
Console.ReadLine();
}
///<summary>
///删除数组元素
///</summary>
///<param name="ArrayBorn">要从中删除元素的数组</param>
///<param name="Index">删除索引</param>
///<param name="len">删除长度</param>
///<returns></returns>
static void deleteArr(string[] ArrayBorn, int Index, int Len) {
//删除的长度小于0则直接结束
if (Len < 0) return;
//从头删除时的范围超出数组的长度则直接删除数组的长度
if (Index==0 && Len >= ArrayBorn.Length)
{
Len = ArrayBorn.Length;
}
else if ((Index+Len) >= ArrayBorn.Length)
{
//删除索引+删除的长度大于数组的长度时 将删除索引以后的长度设置为删除长度
Len = ArrayBorn.Length - Index - 1;
}
int i = 0;
//遍历删除长度
for (i = 0; i < ArrayBorn.Length-Index-Len; i++)
{
//覆盖要删除的值
ArrayBorn[i + Index] = ArrayBorn[i + Len + Index];
}
//遍历删除长度后面的数组元素值
for (int j =(ArrayBorn.Length-1); j > (ArrayBorn.Length-Len-1); j--)
{
ArrayBorn[j] = null;
}
}
}
}
```
直接null也行,就是长度也不会变
```
string[] ArrStr = new string[] { "a", "b", "c", "d", "e", "f" };
ArrStr[0]=null;
ArrStr[1]=null;
ArrStr[2]=null;
ArrStr[3]=null;
```
删除数组元素并修改长度
```
using System;
using System.Collections;
using System.Text;
namespace ConsoleApp1
{
class Program
{
public static void Main(string[] args)
{
string[] ArrStr = new string[] { "a", "b", "c", "d", "e", "f" };
string[] newArr=DeleteArr(ArrStr,0,4);
foreach (string value in newArr)
{
Console.WriteLine(value+"#");
}
Console.ReadLine();
}
///<summary>
///删除数组元素
///</summary>
///<param name="ArrayBorn">要从中删除元素的数组</param>
///<param name="Index">删除索引</param>
///<param name="len">删除长度</param>
///<returns>得到的新数组</returns>
static string[] DeleteArr(string[] ArrayBorn, int Index, int Len) {
//删除的长度小于0则直接返回原数组
if (Len < 0) return ArrayBorn;
//从头删除时的范围超出数组的长度则直接删除数组的长度
if (Index==0 && Len >= ArrayBorn.Length)
{
Len = ArrayBorn.Length;
}
else if ((Index+Len) >= ArrayBorn.Length)
{
//删除索引+删除的长度大于数组的长度时 将删除索引以后的长度设置为删除长度
Len = ArrayBorn.Length - Index - 1;
}
//申明一个新数组
string[] temArray = new string[ArrayBorn.Length - Len];
//遍历删除长度
for (int i= 0; i < temArray.Length; i++)
{
if (i>=Index)
{
temArray[i] = ArrayBorn[i + Len];
}
else
{
temArray[i] = ArrayBorn[i];
}
}
return temArray;
}
}
}
```
- C#
- 基础 System
- 命名规范
- 变量
- 数据类型
- 值类型
- 简单类型
- 整数类型
- 字符类型
- 浮点类型
- 布尔类型
- 枚举类型
- 结构体类型
- 引用类型
- 类类型
- 对象(Object)类型
- 字符串(String)类型
- 方法属性
- 动态(Dynamic)类型
- 数组类型
- 接口Interface
- 委托类型delegate
- 装箱和拆箱
- 指针类型
- 值类型与引用类型的区别
- Var类型
- 类型转换
- 隐式转换
- 显式转换
- 常量
- 常用函数
- 流程控制
- 循环
- 跳转语句
- 数组
- 数组查找
- 添加组元素
- 复制与克隆数组
- 删除数组元素
- 数组排序与反转
- 数组排序
- 冒泡排序
- 直接插入排序
- 选择排序法
- 数组对象
- 哈希表
- 其他
- 递归
- 属性与方法及方法重载
- 结构与类
- 类
- 构造函数与析构函数
- 继承
- 多态
- 泛型
- demo
- 汉字字符(串)比较
- 创建指定大小文件与读取大文件
- 小截屏软件功能
- 子窗体返回主窗体
- 判断是否为数字
- 获得字符串实际长度(包括中文字符)
- unity
- script脚本
- 脚本的生命周期
- 调试
- Unity Manual5.4
- Unity手册
- Working In Unity
- Unity 2D
- Graphics(图形)
- Physics(物理系统)
- Scripting(脚本)
- Multiplayer and Networking(多玩家和联网)
- Audio(音频)
- Animation(动画)
- UI
- Navigation and Pathfinding(导航和寻路)
- Unity Services(Unity服务)
- Virtual Reality(虚拟现实VR)
- Open-source repositories(开源代码库)
- Platform-specific(特定于平台的信息)
- Legacy Topics(旧版主题)
- Expert Guides(专家指南)
- 重要的类
- Object
- GameObject(重要)
- Component
- Transform(重要)
- Rigidbody
- ParticleSystem
- Behaviour
- Camera
- Animator
- AudioSource
- Animation
- AudioListener
- Light
- MonoBehaviour事件行为(重要)
- Terrain
- Collider
- Renderer
- Texture
- Mesh
- material
- Time
- Prefab预制件
- 功能demo
- 层级未知查找子物体
- 查找hp最小的敌人
- 查找最近的敌人
- 小项目之英雄无敌
- 界面操作
- Scene窗口
- Game窗口
- project窗口
- Hierarchy窗口
- 动画
- Animation重要API
- 2D
- Sprite(creator) Sprite Renderer
- Sprite Editor
- Sprite Packer(遗留功能)
- 排序组组件
- 切片精灵
- 精灵遮罩
- 精灵图集
- Tilemap
- 2D物理系统
- 全局设置(Project setting)
- 2D刚体(Rigidbody 2D)
- 碰撞(事件)消息
- 2D碰撞体(Collider 2D)
- 2D圆形碰撞体(Circle Collider 2D)
- 2D盒型碰撞体(BoxCollider 2D)
- 2D多边形碰撞体( Polygon Collider 2D)
- 2D边界碰撞体(EdgeCollider 2D)
- 2D胶囊碰撞体(CapsuleCollider 2D)
- 2D复合碰撞体(Composite Collider 2D)
- 2D物理材质(摩擦和弹性)(Physics Material 2D)
- 2D关节
- 2D距离关节(Distance Joint 2D)
- 2D固定关节(Fixed Joint 2D)
- 2D摩擦关节(Friction Joint 2D)
- 2D铰链关节(Hinge Joint 2D)
- 2D相对关节(Relative Joint 2D)
- 2D滑动关节(Slider Joint 2D)
- 2D弹簧关节(Spring Joint 2D)
- 2D目标关节(Target Joint 2D)
- 2D车轮关节(Wheel Joint 2D)
- 2D恒定力(Constant Force 2D)
- 2D 效应
- 2D区域效应(AreaEffector 2D)
- 2D浮力效应(BuoyancyEffector 2D)
- 2D点效应(PointEffector 2D)
- 2D平台效应(PlatformEffector 2D)
- 2D表面效应(SurfaceEffector 2D)
- 精灵动画
- 2D动画事件
- 重要类
- rigidbody2d
- 小窍门
- Unity中如何查找脚本挂载在哪个物体上