using System.Collections.Generic; using System.Linq; namespace Assets.Map { public class Graph { public List Vertices { get; internal set; } = new List(); public ISet<(int, int)> Edges { get; internal set; } = new HashSet<(int, int)>(); public void AddEdge(int a, int b) { Edges.Add(a < b ? (a, b) : (b, a)); } public IEnumerable<(int, int)> EdgesOf(int a) { return Edges.Where(x => x.Item1 == a || x.Item2 == a); } } }