You are right, which IndexOfis a more general operation than Contains. However Contains, it is still very useful because it clearly represents the operation.
if(blah.IndexOf(something) >=0)
{
}
not as obvious an operation as
if(blah.Contains(something))
{
}
, , IndexOf, , , Contains.
, .