Хорошо FirstOrDefault()
вернет ноль (при условии, что SkeletonData
- это класс), если нет значений, соответствующих вашему предложению where
- поэтому я подозреваю, что это так.
Если ваш код собираетсяполагаться на наличие хотя бы одного результата, было бы лучше вызвать First()
, а не FirstOrDefault
, чтобы избежать сокрытия ошибки.Лично я бы не стал использовать выражение запроса:
SkeletonData data = skeletonSet.Skeletons
.Where(s => s.TrackingState == SkeletonTrackingState.Tracked)
.First();
Или, как указано в комментариях, использовать перегрузку First
, которая принимает предикат:
SkeletonData data = skeletonSet.Skeletons
.First(s => s.TrackingState == SkeletonTrackingState.Tracked);