---
title: "How to Create generic method to return multiple list in c# ?"  
description: "How to Create generic method to return multiple list in c# ?"  
author: "Anonymous User"  
published: 2019-06-29  
updated: 2019-07-02  
canonical: https://www.mindstick.com/forum/55125/how-to-create-generic-method-to-return-multiple-list-in-c-sharp  
category: "c#"  
tags: ["c#", "asp.net mvc", "mvc", "mvc2"]  
reading_time: 4 minutes  

---

# How to Create generic method to return multiple list in c# ?

[Please describe](https://www.mindstick.com/interview/33713/please-describe-the-relationship-between-seo-and-sem) with a suitable Example and Definition...

## Replies

### Reply by Anonymous User

Try to use overloaded method.

```
  public void ExecuteList<T>(out List<T> obj, string sql, params object[] parameters) where T : class
        {
            var db = _context;
            var cmd = db.Database.Connection.CreateCommand();
            cmd.CommandText = sql;
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.AddRange(parameters);
            try
            {
                db.Database.Connection.Open();
                using (var reder = cmd.ExecuteReader())
                {
                    obj = ((IObjectContextAdapter)db).ObjectContext.Translate<T>(reder).ToList();

                }
            }
            finally
            {
                db.Database.Connection.Close();
                cmd.Dispose();
            }

        }
        /// <summary>
        ///
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <typeparam name="T1"></typeparam>
        /// <param name="obj"></param>
        /// <param name="obj1"></param>
        /// <param name="sql"></param>
        /// <param name="parameters"></param>
        public void ExecuteList<T, T1>(out List<T> obj, out List<T1> obj1, string sql, params object[] parameters) where T : class
        {
            var db = _context;
            var cmd = db.Database.Connection.CreateCommand();
            cmd.CommandText = sql;
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.AddRange(parameters);
            try
            {
                db.Database.Connection.Open();
                using (var reder = cmd.ExecuteReader())
                {
                    obj = ((IObjectContextAdapter)db).ObjectContext.Translate<T>(reder).ToList();
                    reder.NextResult();
                    obj1 = ((IObjectContextAdapter)db).ObjectContext.Translate<T1>(reder).ToList();
                }
            }
            finally
            {
                db.Database.Connection.Close();
                cmd.Dispose();
            }

        }
        /// <summary>
        ///
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <typeparam name="T1"></typeparam>
        /// <typeparam name="T2"></typeparam>
        /// <param name="obj"></param>
        /// <param name="obj1"></param>
        /// <param name="obj2"></param>
        /// <param name="sql"></param>
        /// <param name="parameters"></param>
        public void ExecuteList<T, T1, T2>(out List<T> obj, out List<T1> obj1, out List<T2> obj2, string sql, params object[] parameters) where T : class
        {
            var db = _context;
            var cmd = db.Database.Connection.CreateCommand();
            cmd.CommandText = sql;
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.AddRange(parameters);
            try
            {
                db.Database.Connection.Open();
                using (var reder = cmd.ExecuteReader())
                {
                    obj = ((IObjectContextAdapter)db).ObjectContext.Translate<T>(reder).ToList();

                    reder.NextResult();
                    obj1 = ((IObjectContextAdapter)db).ObjectContext.Translate<T1>(reder).ToList();
                    reder.NextResult();
                    obj2 = ((IObjectContextAdapter)db).ObjectContext.Translate<T2>(reder).ToList();
                }
            }
            finally
            {
                db.Database.Connection.Close();
                cmd.Dispose();
            }

        }
```

\

\


---

Original Source: https://www.mindstick.com/forum/55125/how-to-create-generic-method-to-return-multiple-list-in-c-sharp

Copyright © MindStick Software Pvt. Ltd. This Markdown version is provided for developers, AI systems, and offline reading.
