Как я могу переписать или есть способ написать мою собственную настраиваемую функцию, которая имитирует Custom System.Collections.Generic.Contains, но учитывает только определенные общедоступные свойства настраиваемого объекта?
Например, если у меня есть настраиваемый объект с именем и идентификатором свойств, я хотел бы, чтобы мой список уникальных значений содержал все DISTINCT имена. Идентификатор в этом случае не имеет значения.
List allvalues = new List ({0, "Burger"}, {1, "Pizza"}, {2, "burger"})
Я хотел бы, чтобы он вернул мне список, который содержит первый объект 0, Бургер и 1, Пицца ... Независимо от идентификатора и регистра имени.





Да, используйте доходность, как в:
private Collection<T> internalCollection;
public Collection<T> GetDistinctList<T>()
{
List<string> names = new List<string>();
foreach(T thisT in internalCollection)
if (!names.Contains(thisT.Name)
{
names.Add(thisT.Name);
yield return thisT;
}
}
Мне очень непонятно, как Contains(...) связан с материалом List ({0, "Burger"}, {1, "Pizza"}, {2, "burger"}). Вы можете уточнить? В общем, вам может потребоваться предоставить собственный Equals() / GetHashCode(), или IEquatable<T>, или IEqualityComparer<T>. В качестве альтернативы LINQ может упростить эту задачу множеством способов - есть ли у вас доступ к LINQ?
У меня нет доступа к LINQ :(. Чтобы уточнить, мне нужна возможность возвращать уникальный список настраиваемых объектов в предоставленном списке. Я взял код Contains из другого руководства и подумал, что он может быть применим в этой ситуации.