0

我有一个有序的值列表。

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 它在列表中来做到这一点,并且它应该检查它是否有前任,如果有,则从中获取值,并添加两个值之间的差异,并将其作为该行的“多边形开始”值返回?

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

4

1 回答 1

1

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

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

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

这个答案:创建一个非常简单的链表有一个很好的用法示例。

或者,您可以自己滚动。这个例子和其他例子一样好:http: //seedotnet.wordpress.com/2011/04/28/doubly-linked-list/

于 2013-06-07T12:02:04.453 回答