Я пытаюсь использовать Linq, чтобы вернуть список идентификаторов, учитывая список объектов, где идентификатор является свойством. Я хотел бы иметь возможность делать это, не просматривая каждый объект и не извлекая уникальные идентификаторы, которые я нахожу.
У меня есть список объектов типа MyClass и одним из свойств этого класса является идентификатор.
public class MyClass
{
public int ID { get; set; }
}
Что я хочу сделать, это написать запрос Linq, чтобы вернуть мне список этих идентификаторов
Как мне сделать это, учитывая IList<MyClass>
, что он возвращает IEnumerable<int>
идентификаторы?
Я уверен, что должно быть возможно сделать это в одну или две строки, используя Linq, вместо того, чтобы перебирать каждый элемент в списке MyClass и добавлять уникальные значения в список.
Любая помощь в создании элегантного решения будет высоко ценится!
DistinctBy
в MoreLinq, который даст вам различныеMyClass
s на основеID
. Использование:var distincts = list.DistinctBy(x => x.ID);
Ответы:
источник
Используйте оператор Distinct :
источник
Используя прямой Linq , с
Distinct()
расширением:источник
ВЫВОД
1234567890
источник
Принимая Distinct, мы также должны бросить в IEnumerable. Если список - это значит модель, нужно написать такой код
источник