У меня есть список объектов.
public class UserProperties
{
public int Id { get;set; }
public string Name { get;set; }
public string ColorCode { get; set; }
}
List<UserProperties> userList = new List<UserProperties>();
Мне нужно взять отдельный список из этого. Здесь поле Id
является уникальным полем. Есть ли возможность взять отдельный список?
Если это означает список строк, то используйте функцию distinct
. Это будет работать. Но в моем случае это список объектов. Мы не можем использовать отличные друг от друга напрямую.
.Distinct
? Решение, на которое я специально указал, также позволит OP создатьHashSet<UserProperties>
, который будет использовать методы объекта GetHashCode/Equals или пользовательскийIEqualityComparer
. - person Llama   schedule 23.09.2019HashSet<UserProperties>
или.Distinct()
LINQ были бы идеальным инструментом для работы. Поэтому этот вопрос является дубликатом. - person Llama   schedule 23.09.2019.Distinct()
, которое работало сList
. Компаратор равенства по умолчанию для любого объекта использует методыGetHashCode
иEquals
типа. Если они не реализованы, используется базаobject
. Вот почему вы не можете сравнить пользовательский тип, если вы не перегрузили их (или не указали компаратор для объекта). - person Llama   schedule 23.09.2019.Distinct
. - person Llama   schedule 23.09.2019Distinct
в уникальном списке? Вы получите тот же список обратно. Если OP хочет лучшего решения, то OP может отредактировать свой вопрос, чтобы уточнить, что они просят. На данный момент я чувствую, что вы читаете этот вопрос больше, чем есть. - person Llama   schedule 23.09.2019