Try the following link :
A Vector Type for C#
Or Check following Code :
VB.Net Code :
Public Shared Function ON_3dVectorAngle(ByVal v0 As On3dVector, ByVal v1 As On3dVector) _
As Double
v0.Unitize()
v1.Unitize()
Dim dot As Double = OnUtil.ON_DotProduct(v0, v1)
If (dot < -1.0) Then dot = -1.0
If (dot > 1.0) Then dot = 1.0
Return System.Math.Acos(dot)
End Function
C# Code :
public static double ON_3dVectorAngle(On3dVector v0, On3dVector v1)
{
v0.Unitize();
v1.Unitize();
double dot = OnUtil.ON_DotProduct(v0, v1);
dot = (dot < -1.0 ? -1.0 : (dot > 1.0 ? 1.0 : dot));
return System.Math.Acos(dot);
}