C# List去除重复值

方法算法一

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}");

猜你喜欢

转载自blog.csdn.net/fengya1/article/details/113094287