查找具有相同节点的链接

时间:2017-07-16 07:06:19

标签: c#

查找从节点到节点完全相同的链接的最快方法是什么。

所以我有一个链接列表,每个链接都有一个FromNode和ToNode。 我不确定找到具有公共节点的链接的最快方法是什么。在列表中循环,并检查每个链接的节点听起来好像需要很长时间才能找到这些链接。我应该考虑哪些其他方法?

随附图片以使事情更加清晰。

enter image description here

如图所示,链接1和2共享B和C节点。链接6,7共享Z和X. 所以结果将是那些链接。

任何想法都会有所帮助

1 个答案:

答案 0 :(得分:1)

您可以在列表中使用LINQ。

假设您有Links类:

public class Links
{
    public string FromNode { get; set; }
    public string ToNode { get; set; }
}

然后你只需使用LINQ简单地得到你的结果:

var links = new List<Links>
            {
                new Links{FromNode = "B", ToNode = "C"},
                new Links{FromNode = "C", ToNode = "B"},
                new Links{FromNode = "A", ToNode = "D"}
            };


        var res = from a in links
                  join b in links
                  on
                  new { FromNode = a.FromNode, ToNode = a.ToNode } equals
                  new { FromNode = b.ToNode, ToNode = b.FromNode }
                  select new { a.FromNode, a.ToNode };