Учитывая следующие строки кода в C#:
var testvalue = result[0]
.GetType()
.GetProperty(propertyNameToFilterOn)
.GetValue(result[0], null);
var test = result
.Where(x => x
.GetType()
.GetProperty(propertyNameToFilterOn)
?.GetValue(x, null) == "46ee6799-2bed-4a7a-93f8-0839affbd218")
.ToList();
результат, очевидно, содержит коллекцию объектов. Первая строка дает мне значение (46ee6799-2bed-4a7a-93f8-0839affbd218). Однако вторая строка возвращает 0 объектов в списке. Первая строка подтверждает, что первый объект в коллекции имеет значение, по которому я фильтрую, во второй строке, в то время как вторая строка говорит мне, что ни у одного объекта в коллекции нет этого значения для свойства, которое я проверяю. Может кто-нибудь объяснить, почему это не работает? И потенциально предоставить альтернативу?