Q:

Как передать List<класс> через аргументы

Есть класс в котором собираю данные и записываю их в файл
public static class BaseLog
{
   private static readonly List<ClassName> DataBase = new List<ClassName>();

   public static void Save()
   {
      //...
      SaveDataBase.GO("Log.txt", DataBase);
   }
}

Есть отдельный класс который я хочу использовать для сохранения данных в файл.
public static class SaveDataBase
{
  public static void GO(string path, List<Type> _logs) // List<object> _logs
  {
    using (TextWriter tw = new StreamWriter(path))
    {
       foreach (var item in _logs)
       {
          tw.WriteLine(item.ToString());
       }
    }
  }
}

Проблема заключается в том что из метода SaveDataBase.GO аргумент не правильно передаётся List<Type> _logs не удаётся преобразовать для класса. 
Как передать List<ClassName> в аргументы? или это по другому называется, я точно не знаю прошу прощения.
public class ClassName
{
   public string Name { get; set; } 
   public string Data{ get; set; } 

   public override string ToString()
   {
      return string.Format(Name, Data); 
   }
}

A:

public static class SaveDataBase<T>
{
  public static void GO(string path, List<T> _logs) 
  {
    using (TextWriter tw = new StreamWriter(path))
    {
       foreach (T item in _logs)
       {
          tw.WriteLine(item.ToString());
       }
    }
  }
}

  ...
  SaveDataBase<ClassName>.GO("Log.txt", DataBase);

public static class SaveDataBase
{
  public static void GO<T>(string path, List<T> _logs) 
  {
    using (TextWriter tw = new StreamWriter(path))
    {
       foreach (T item in _logs)
       {
          tw.WriteLine(item.ToString());
       }
    }
  }
}

  ...
  SaveDataBase.GO<ClassName>("Log.txt", DataBase);

