将对象列表添加到List <list <objects>&gt;如果不包含</list <objects>

时间:2013-04-25 10:03:36

标签: c#

我有List<List<Vertex>>Vertex有一个属性id。我需要将List<Vertex>>添加到此列表中,但不是重复列表。

 public void AddComponent(List<Vertex> list)
{
    List<List<Vertex>> components = new List<List<Vertex>>;

    //I need something like
      if (!components.Contain(list)) components.Add(list);
}

2 个答案:

答案 0 :(得分:1)

您可以使用SequenceEqual - (这意味着顺序也必须相同):

if (!components.Any(l => l.SequenceEqual(list))) 
    components.Add(list);

答案 1 :(得分:0)

您可以执行以下操作:

public void AddComponent(List<Vertex> list)
{
    var isInList = components.Any(componentList =>
    {
        // Check for equality
        if (componentList.Count != list.Count)
            return false;

        for (var i = 0; i < componentList.Count; i++) {
            if (componentList[i] != list[i])
                return false;
        }

        return true;
    });

    if (!isInList)
        components.Add(list);
}