我可以创建位置感知列表项吗?

时间:2013-06-07 11:43:41

标签: c# list graph svg

我有一个有序的值列表。

public class GraphItem
{
    public int ID { get; set; }
    public int Value { get; set; }
}

public class Graphdata
{
    IList<GraphItem> Items { get; set; }
}

在这个列表中,我正在使用几个SVG多边形创建一个水平区域图。每行一个多边形。因此,该区域的一个“峰值”的线需要在Item1和Item2的值之间结束。

我设法通过迭代集合并在迭代中进行计算来实现这一目的。但是我可以通过告诉GraphItem它是否在列表中来做到这一点,它应该检查它是否有一个前任,如果是,请从中获取Value,并添加两个值之间的差异,并将其作为该行的“多边形开始”值返回?

注意:我不想为列表中的所有项创建一个多边形,它需要拥有自己的多边形。至少现在。

1 个答案:

答案 0 :(得分:1)

我会使用LinkedList而不是List。在LinkedList中,每个节点都保留对下一个节点或前一个节点的引用。双向链表记录前进和后退。

有一个内置的C#实现: 请参阅:http://msdn.microsoft.com/en-us/library/he2s3bh7.aspx

这样,您可以轻松找到上一个或下一个节点。

这个答案:Creating a very simple linked list有一个很好的用法示例。

或者,您可以自己动手。 此示例与其他任何示例一样好:http://seedotnet.wordpress.com/2011/04/28/doubly-linked-list/