SharpGraph 1.3.2
See the version list below for details.
dotnet add package SharpGraph --version 1.3.2
NuGet\Install-Package SharpGraph -Version 1.3.2
<PackageReference Include="SharpGraph" Version="1.3.2" />
paket add SharpGraph --version 1.3.2
#r "nuget: SharpGraph, 1.3.2"
// Install SharpGraph as a Cake Addin #addin nuget:?package=SharpGraph&version=1.3.2 // Install SharpGraph as a Cake Tool #tool nuget:?package=SharpGraph&version=1.3.2
SharpGraph
A C# graph library with support for both directed- and undirected graphs (simpel- and multigraphs).
Features
- Serializable to json and deserializable from json.
- Graph properties:
- Vertices
- Edges (arrows and lines)
- Sources
- Sinks
- IsAcyclic
- HasCycles
- Density
- IsSparse
- IsDense
- IsDirected
- IsDirectedAcyclic
- Graph methods:
- AddVertex (given a vertex)
- AddEdge (given a edge)
- AdjacentVertices (given a vertex)
- AdjacentEdges (given a vertex)
- AllPaths (between two given vertices)
- Multiple graph representations available.
- AdjacencyList
- AdjacencyMatrix
Nuget
Install-Package SharpGraph
How to use
Step 1
Create a vertex class by extending the Vertex base class.
public class TestVertex : Vertex
{
public TestVertex(string identifier)
: base(identifier)
{
}
}
Step 2
Create a edge class by extending either the Line class (undirected edge) or the Arrow class (directed edge).
public class TestArrow : Arrow<TestVertex>
{
public TestArrow(TestVertex source, TestVertex target)
: base(source, target)
{
}
}
Step 3
Create a new instance of the Graph class with your own vertex and edge classes as generic types. You can use a fluent syntax for adding vertices and edges.
var vertex1 = new TestVertex("A");
var vertex2 = new TestVertex("B");
var vertex3 = new TestVertex("C");
var vertex4 = new TestVertex("D");
var graph = new Graph<TestVertex, TestArrow>()
.AddVertex(vertex1)
.AddVertex(vertex2)
.AddVertex(vertex3)
.AddVertex(vertex4)
.AddEdge(new TestArrow(vertex1, vertex2))
.AddEdge(new TestArrow(vertex1, vertex3))
.AddEdge(new TestArrow(vertex2, vertex4))
.AddEdge(new TestArrow(vertex3, vertex4));
var pathsVertex1ToVertex4 = graph.AllPaths(vertex1, vertex4);
foreach (var path in pathsVertex1ToVertex4)
{
Console.WriteLine(string.Join(", ", path.Select(i => $"{i.Source}->{i.Target}")));
}
This gives the following result on the console.
A->B, B->D
A->C, C->D
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net8.0
- morelinq (>= 4.3.0)
- Newtonsoft.Json (>= 13.0.3)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on SharpGraph:
Package | Downloads |
---|---|
SharpMachineLearning
Package Description |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
1.4.4 | 131 | 11/17/2024 |
1.4.3 | 93 | 11/17/2024 |
1.4.2 | 85 | 11/17/2024 |
1.4.1 | 92 | 11/17/2024 |
1.4.0 | 81 | 11/17/2024 |
1.3.13 | 89 | 11/16/2024 |
1.3.12 | 89 | 11/16/2024 |
1.3.11 | 134 | 9/19/2024 |
1.3.10 | 99 | 9/19/2024 |
1.3.9 | 94 | 9/19/2024 |
1.3.8 | 784 | 9/5/2024 |
1.3.7 | 130 | 9/5/2024 |
1.3.6 | 123 | 9/5/2024 |
1.3.5 | 119 | 9/5/2024 |
1.3.4 | 111 | 9/4/2024 |
1.3.3 | 116 | 9/1/2024 |
1.3.2 | 105 | 9/1/2024 |
1.3.1 | 108 | 9/1/2024 |
1.3.0 | 182 | 2/19/2024 |
1.2.9 | 150 | 2/13/2024 |
1.2.8 | 113 | 2/13/2024 |
1.2.7 | 191 | 12/20/2023 |
1.2.6 | 120 | 12/20/2023 |
1.2.5 | 285 | 3/27/2023 |
1.2.3 | 296 | 12/22/2022 |
1.2.2 | 427 | 6/1/2022 |
1.2.1 | 425 | 5/25/2022 |
1.2.0 | 431 | 5/1/2022 |
1.1.7 | 442 | 2/16/2022 |
1.1.6 | 436 | 2/16/2022 |
1.1.5 | 438 | 2/15/2022 |
1.1.4 | 437 | 2/15/2022 |
1.1.3 | 422 | 2/15/2022 |
1.1.2 | 414 | 2/15/2022 |
1.1.1 | 437 | 2/14/2022 |
1.1.0 | 434 | 2/13/2022 |
1.0.9 | 436 | 2/13/2022 |
1.0.8 | 451 | 1/15/2022 |
1.0.7 | 284 | 12/19/2021 |
1.0.6 | 309 | 11/19/2021 |
1.0.5 | 386 | 10/10/2021 |
1.0.4 | 347 | 10/10/2021 |