Hi Joseph,
I hope this will help !
list1 = {0, 1};
list2 = {0, 5};
ListLinePlot[Transpose[{list1, list2}]
, plot = PlotStyle -> {Thick, Dashed}
, PlotRange -> {{0, 5}, {0, 5}}
, GridLines -> {None, {{2, {Black, Thick}}, {4, {Green, Thick}}}}
, Mesh -> {{2, 4}}
, MeshFunctions -> {#2 &}
, MeshStyle -> Directive[Red, PointSize[0.03]]
]

lst1 = Table[i, {i, {2, 2, 2, 2, 2}}];
lst2 = Table[i, {i, {4, 4, 4, 4, 4}}];
lst3 = Table[x, {x, {0, 5}}];
plot = ListLinePlot[{lst1, lst2, lst3}
, PlotRange -> {{1, 5}, {0, 5}}
]
a = Graphics`Mesh`FindIntersections@plot
Length[a]

Regards,....Jos