Используя лямбда-нотацию для ясности, это разбивается на ряд функций в следующей последовательности:
IEnumerable<Int32> DistinctIds = TagTable.Where(x => searchTerms.Contains(x.Label)).Select( x => x.AuctionId).Distinct()
Не вдаваясь слишком далеко в лямбда-синтаксис, ключевые функции здесь:
.Where (x => searchTerms.Contains (x.Label)) - это выберет только те строки, где коллекция searchTerms содержит значение Label для этой строки
.Select (x => x.AuctionId) - возвращает только целочисленные значения AutionId, а не полную запись
.Distinct () - выполняет только то, что говорит на зубце
Надеюсь, это поможет