IQueryable OfType where T is a runtime Type

后端 未结 7 609
旧巷少年郎
旧巷少年郎 2020-12-14 01:52

I need to be able to get something similar to the following to work:

Type type = ??? // something decided at runtime with .GetType or typeof;
object[] entity         


        
7条回答
  •  天涯浪人
    2020-12-14 02:45

    Based on @Jon Skeet's answer, here's a LINQ extension method:

    public static class QueryableExtensions
    {
        public static IQueryable OfType(this IQueryable queryable,
            Type runtimeType)
        {
            var method = typeof(Queryable).GetMethod(nameof(Queryable.OfType));
            var generic = method.MakeGenericMethod(new[] { runtimeType });
            return (IQueryable)generic.Invoke(null, new[] { queryable });
        }
    }
    

提交回复
热议问题