Вы можете использовать IEnumerable<T>.FirstOrDefault(Func<T, bool> predicate)
, если вы хотите вернуть первый, соответствующий предикату.
В противном случае вы просто смотрите на расширение IEnumerable<T>.Where(Func<T, bool> predicate)
linq, которое вернет все элементы, соответствующие переданному предикату.Это вернет пустой IEnumerable<T>
, если ни один элемент не соответствует предикату, и в этот момент, если вам действительно нужно, чтобы значение было нулевым, вы можете просто посмотреть, есть ли в нем что-либо.
var res = MyDictionary.Where(x =>
{
if (x.Value != null)
return (x.Value.Id == sourceField.SrcField.Id);
return false;
});
if (!res.Any())
res = null;
Тогда, если выАбсолютно нужно иметь его в виде списка, вы можете просто позвонить
res.ToList();
Обратите внимание, что если вы на самом деле манипулируете Dictionary<TKey, TValue>
, res
будет содержать KeyValuePair<TKey, TValue>
.