以下のように、インターフェイスとそのインターフェイスを継承する2つのクラスがあります
public interface ILeader
{
    int ID { set; get; }
    string Name { set; get; }
}
public class User : ILeader
{
    public int ID { set; get; }
    public string Name { set; get; }
}
public class Group : ILeader
{
    public int ID { set; get; }
    public string Name { set; get; }
}
ILeader今、タイプのパラメーターと ILeader の IList を持つ 2 つのメソッドがあります。
public void Change(ILeader leader)
{
  //do some thing           
}
public void ChangeList(IList<ILeader> leaderList)
{
  //do some thing           
}
Groupこれで、またはいずれかのオブジェクトUserを Change メソッドに渡すことができ、機能します。Listしかし、 toメソッドで同じことをしようとすると、ChangeListコンパイル時エラーが発生します。
IList<User> userList=new List<User>();
userList.Add(new User { ID=1, Name ="Happy"});
Change(userList[0]);  //this works
ChangeList(userList);  //this throws compile error
エラーは
cannot convert from List<User> to List<ILeader>
とChangeListの両方のリストを渡すことができるようにメソッドを機能させるにはどうすればよいですか?UsersGroups