# MoonTools.Graph [![NuGet Badge](https://buildstats.info/nuget/MoonTools.Graph)](https://www.nuget.org/packages/MoonTools.Graph/) [![Build Status](https://drone.moonside.games/api/badges/MoonsideGames/MoonTools.Graph/status.svg)](https://drone.moonside.games/MoonsideGames/MoonTools.Graph) A GC-friendly graph theory library for C# intended for use with games. ## Usage `Graph` implements various algorithms on the following graph structures: * Directed * Directed Weighted * Directed Weighted Multigraph * Undirected * Undirected Weighted ## Notes `Graph` algorithms return lazy enumerators to avoid creating GC pressure. If you wish to hang on to the results of an evaluation, make sure to call `ToArray()` or `ToList()` on the IEnumerable. ### TODO * change Neighbors tests to use Equal instead of Contains * change Edge id from a Guid to an integer index on the edge * Prim Minimum Spanning Tree * Kruskal Minimum Spanning Tree * Undirected Weighted Multigraph