В C # как я могу проверить, если T имеет тип IInterface и привести к этому, если мой объект поддерживает этот интерфейс?

В C # у меня есть функция, которая проходит вT с помощьюgenerics и я хочу запустить проверку, чтобы увидеть, еслиT являетсяobject который реализуетinterface и если так, позвоните одному изmethods на что .interface

Я нене хочу иметьT ограничения должны быть только этого типа. Можно ли сделать это?

Например:

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));
        }
        return entities;
    }

    public IEnumerable FilterMe(IEnumerable linked) where TResult : IFilterable
    {
        var dict = GetDict();
        return linked.Where(r => dict.ContainsKey(r.Id));
    }
 }

Ошибка, которую я получаю:

Ошибка 21 Тип 'TResult» нельзя использовать в качестве параметра типа 'TResult» в универсальном типе или методеFilterMe (System.Collections.Generic.IEnumerable)», Не существует неявного преобразования ссылок из 'TResult» кIFilterable.

Ответы на вопрос(8)

Ваш ответ на вопрос