查找从节点到节点完全相同的链接的最快方法是什么。
所以我有一个链接列表,每个链接都有一个FromNode和ToNode。 我不确定找到具有公共节点的链接的最快方法是什么。在列表中循环,并检查每个链接的节点听起来好像需要很长时间才能找到这些链接。我应该考虑哪些其他方法?
随附图片以使事情更加清晰。如图所示,链接1和2共享B和C节点。链接6,7共享Z和X. 所以结果将是那些链接。
任何想法都会有所帮助
答案 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 };