Not sure what you are looking for because the algorithm explains wikipedia very well . Do you want to explain the algorithm or translation (or good library) of this in C #?
You can also take a look at the general clustering algorithm .
Algorithm
Suppose you select epsilon, and the number of elements to start the cluster is 4.
You need to define the distance function, DBSCAN function, and cluster extension function:
from wikipedia:
DBSCAN(D, eps, MinPts)
C = 0
for each unvisited point P in dataset D
mark P as visited
N = getNeighbors (P, eps)
if sizeof(N) < MinPts
mark P as NOISE
else
C = next cluster
expandCluster(P, N, C, eps, MinPts)
expandCluster(P, N, C, eps, MinPts)
add P to cluster C
for each point P' in N
if P' is not visited
mark P' as visited
N' = getNeighbors(P', eps)
if sizeof(N') >= MinPts
N = N joined with N'
if P' is not yet member of any cluster
add P' to cluster C
You have a list of items:
First: randomly select a random:
Epsilon testing (Epsilon is the radius of the circles) if the number of points is 4. If yes, start the cluster (green), otherwise mark as noise (red): (fonction DBSCAN for each unvisited point) The arrows show all the points that you visited .

secondly: expand the cluster: after you find that the cluster will mark all the points in green and check more points in this cluster

: ,

2 ...

,