方法算法一
List<int> trans =new List<int>();
int count = trans.Count;
int time = 0;
count = trans.Count;
for (int i = 0; i < count; i++)
{
for (int j = i + 1; j < count; j++)
{
time++;
if (trans[i] == trans[j])
{
trans.RemoveAt(i);
count = trans.Count;
i--;
break;
}
}
Debug.LogError($"{trans.Count}/{time}");
二从列表第一位开始循环,找到要对比的值和后面值进行对比,如果后面列表有重复删除后面所有重复值
time = 0;
count = trans.Count;
for (int i = 0; i < count; i++)
{
for (int j = i + 1; j < count; j++)
{
time++;
if (trans[i].GetInstanceID() == trans[j].GetInstanceID())
{
trans.RemoveAt(j);
count = trans.Count;
j--;
}
}
}
Debug.LogError($"{trans.Count}/{time}");
三从两头向中间循环对比查找删除
time = 0;
count = trans.Count;
for (int i = 0; i < count; i++)
{
for (int j = count - 1; j > i; j--)
{
time++;
if (trans[i] == trans[j])
{
trans.RemoveAt(j);
count = trans.Count;
}
}
}
Debug.LogError($"{trans.Count}/{time}");