In c#
is this efficient programming?

I was wondering since t1 links to t2 and t2 links to t1 and hence it also links back to itself will it make it take more space or like is it a dangerous algorithm/code?

```
static void Main(string[] args)
{
    Test t1 = new Test(1);
    Test t2 = new Test(2);
    Test t3 = new Test(3);
    Test t4 = new Test(4);
    t1.Links = new List<Test>();
    t1.Links.Add(t2);
    t2.Links = new List<Test>();
    t2.Links.Add(t1);

    Console.WriteLine(t1.Links.First().Links.First().id);
    Console.Read();
    return;
}

public class Test
{
    public int id { get; set; }

    public virtual ICollection<Test> Links { get; set; }

    public Test(int Id)
    {
        id = Id;
    }
}

```

I am using this type of structure in MVC. I have noticed that MVC also loads these virtual objects from the DB along with the main object, So I was wondering if that would be a problem