引用多个集合中的对象,并使每个集合中的顺序影响某些属性

本文关键字:集合 影响 顺序 属性 对象 引用 | 更新日期: 2023-09-27 18:03:45

这很难解释。

我有一组盒子,每个盒子都有自己的内容。这个盒子可以出现在多个架子上,如果内容发生了变化,我想在全局上反映这些变化。

所以我有一个全局的盒子集合,从这里我也创建了一个每个架子的盒子集合。

我的问题是知道盒子在每个架子上的位置。让我们只考虑X的位置。

在一种情况下,我的盒子可能坐在架子的中间,它的X位置将是44cm。在另一种情况下,同样的盒子可能在架子的开始,它的X位置是0。

我需要访问它为Shelf(id).Box(id).PosX

但这总是给出一个答案,答案应该根据父书架而变化。

我知道这个问题有很多答案,但我希望有人有一个比我一直在计划的一些更优雅的方法。

引用多个集合中的对象,并使每个集合中的顺序影响某些属性

盒子应该知道它在哪里吗?可能不会——你应该能够问架子里面的东西,这意味着问架子盒子在哪里。

myShelf.GetBoxPosition(boxId).PosX

所以盒子没有任何位置信息,这是有道理的,因为它可以在多个位置。架子知道里面的东西在哪里,可以回答你的问题。

这里的假设是盒子不会在同一个架子上出现多次——否则它将不得不返回一个盒子位置的集合,而不是一个盒子位置。