I'm trying to write a linq query that takes a dynamic property name. So for example, if the property name is 'test', a simple query would look like this:
var test = testList.Select(x => x.test).Distinct().ToList();
But I want to dynamically generate the property name, eg:
var propertyName = "test";
var test = testList.Select(x => x.propertyName).Distinct().ToList();
I get an error because 'propertyName' isn't an actual property.
What would be the best way to achieve this?
You'd have to use reflection to do what you're trying to do:
var test = testList
.Select(x => x.GetType().GetProperty(propertyName).GetValue(x))
.Distinct()
.ToList();
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With