Ответ 1
IEnumerable<int> ids = list.Select(x=>x.ID).Distinct();
Я пытаюсь использовать Linq для возврата списка идентификаторов, заданных для списка объектов, где id является свойством. Я хотел бы иметь возможность сделать это, не пробираясь через каждый объект и не вытаскивая уникальные идентификаторы, которые я нахожу.
У меня есть список объектов типа MyClass, и одним из свойств этого класса является ID.
public class MyClass
{
public int ID { get; set; }
}
Что я хочу сделать, это написать запрос Linq, чтобы вернуть мне список этих идентификаторов
Как это сделать, если задано IList<MyClass>
, так что он возвращает IEnumerable<int>
идентификаторов?
Я уверен, что это возможно сделать в одной или двух строках, используя Linq, а не через каждый элемент в списке MyClass и добавление уникальных значений в список.
Любая помощь в создании элегантного решения была бы высоко оценена!
IEnumerable<int> ids = list.Select(x=>x.ID).Distinct();
Используйте Distinct operator:
var idList = yourList.Select(x=> x.ID).Distinct();
Используя прямой Linq, с расширением Distinct()
:
var idList = (from x in yourList select x.ID).Distinct();
int[] numbers = {1,2,3,4,5,3,6,4,7,8,9,1,0 };
var nonRepeats = (from n in numbers select n).Distinct();
foreach (var d in nonRepeats)
{
Response.Write(d);
}
ВЫХОД
1234567890