Предполагая, что T
является ссылочным типом, он будет сравнивать точные ссылки - если вы передадите ссылку, которая находится в коллекции, она должна совпадать без проблем. Было бы крайне странно, чтобы итератор создавал клоны - хотя, конечно, и не невозможно.
Однако, не будет использовать любую перегрузку ==, которая может быть допустимой для вашего конкретного T. Например:
List<string> strings = new List<string> { "hi" };
string hi = "hi";
string otherHi = new string(new char[]{'h', 'i'});
MyMethod(hi); // Will match
MyMethod(otherHi); // Won't match
Чтобы использовать нормальное равенство вместо ссылочного равенства, вы можете изменить свой метод на:
if (EqualityComparer<T>.Default.Equals(t, toSearch))
{
//
}