私は次のpublic interface IofMine{}
ようなインターフェースとコードを持っています:
interface IItems
{
List<IofMine> MyList;
}
public class Items: IItems{
private List<IofMine> _myList;
public List<IofMine> MyList
{
get{return _myList;}
set{_myList = value;}
}
}
public class ofMine : IofMine
{}
...
main のどこかで、この関数を add1 および add2 tat と呼びますが、次のようになります。
...
public static void add1<T>(Items items) where T : IofMine, new()
{
var temp = items.MyList;
var toAdd = new List<T>();
temp.AddRange(toAdd); // here it talls me : Error Argument 1: cannot convert from 'System.Collections.Generic.List<T>' to 'System.Collections.Generic.IEnumerable<IofMine>'
}
public static void add2<T>(Items items) where T : IofMine, new()
{
var toAdd = new List<T>();
toAdd.AddRange(items.MyList); // here it talls me : Error Argument 1: cannot convert from 'System.Collections.Generic.List<IofMine>' to 'System.Collections.Generic.IEnumerable<T>'
}
それで、インターフェイスからのリストを、関数が受け取った汎用テンプレートからのリストで展開可能にする方法と、その逆の方法を知りたいですか?