<p>How do I compare two images &amp; recognize the pattern in an image irrespective of its size and pattern size, and using .Net C#?  Also, which algorithms are used for doing so from Image Processing?</p>

See
Scale-invariant feature transform
,
template matching
, and
Hough transform
. A quick and inaccurate guess may be to make a histogram of color and compare it. If the image is complicated enough, you might be able to distinguish between several sets of images.
To make the matter simple, assume we have three buckets for R, G, and B. A completely white image would have (100%, 100%, 100%) for (R, G, B). A completely red image would have (100%, 0%, 0%). A complicated image might have something like (23%, 53%, 34%). If you take the distance between the points in that (R, G, B) space, you can compare which one is "closer".