In C#, I have a function that passes in T
using generics
and I want to run a check to see if T
is an object
that implements a
You don't have to make the FilterMe
method a generic method to achieve the same result.
public class MyModel : IModel where T : MyObjectBase {
public IQueryable GetRecords()
{
var entities = Repository.Query();
if (typeof(IFilterable).IsAssignableFrom(typeof(T)))
{
//Filterme is a method that takes in IEnumerable
entities = FilterMe(entities.Cast());
}
return entities;
}
public IEnumerable FilterMe(IEnumerable linked) {
var dict = GetDict();
return linked
.Where(r => dict.ContainsKey(r.Id))
.Cast();
}
}