【发布时间】:2017-01-05 09:40:26
【问题描述】:
在 C# 中 这是高效的编程吗?
我想知道,因为 t1 链接到 t2,而 t2 链接到 t1,因此它也链接回自身,这是否会占用更多空间,或者它是否是危险的算法/代码?
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;
}
}
我在 MVC 中使用这种类型的结构。我注意到 MVC 还会从数据库中加载这些虚拟对象以及主对象,所以我想知道这是否会是一个问题
【问题讨论】:
-
你想用那个对象树归档什么?如果您的问题需要具有循环引用的数据结构,则可以创建这样的数据结构......其中没有任何危险;)
-
就像@JanDotNet 刚才所说的那样,没有什么不好的。您可以通过创建更好的结构来保护时间/空间。您可以在这里绝对安全地列出一个列表……但这实际上取决于您要存档的内容。
标签: c# virtual icollection