set调用get为什么是递归?

//随便举个例子
public List<int> list;

//由值找索引
public int this[int value]
{
    get
    {
        for(var i=0;i<list.count;i++)
            if(list[i]==value)
                return i;
    }
    set=>list[this[value]]=value;
}

这里的set块会一直迭代运行,为什么?

递归 是 函数调用自身(直接或间接),你那里并比存在函数(或方法)调用,所以并非递归
难道
a = a; 这样的赋值也能称为递归?

set=>list[this[value]]=value;
你的this是一个方法。当你执行this函数的时候,内部又去调用this。相当于你不听的调用this这个方法,