Can I declare / use some variable in LINQ?
For example, can I write following LINQ clearer?
var q = from PropertyDescriptor t in TypeDescriptor.GetPr
You need let
:
var q = from PropertyDescriptor t in TypeDescriptor.GetProperties(instance)
let name = t.ComponentType.GetProperty(t.Name)
where (name != null)
select name;
If you wanted to do it in query syntax, you could do it in a more efficient (afaik) and cleaner way:
var q = TypeDescriptor
.GetProperties(instance)
.Select(t => t.ComponentType.GetProperty(t.Name))
.Where(name => name != null);