我有一个名为 SCO 的基类,它继承了许多类。我最初只是想对集合进行排序,但根据一些建议,听起来我可以用一种方法对集合进行实例化和排序。
我有这个所有基类都继承的构造函数:
public SCO(SPListItem item, List<Vote> votes)
{
UpVotes = voteMeta.UpVotes;
DownVotes = voteMeta.DownVotes;
VoteTotal = UpVotes - DownVotes;
HotScore = Calculation.HotScore(Convert.ToInt32(UpVotes), Convert.ToInt32(DownVotes), Convert.ToDateTime(item["Created"]));
}
这就是我卡住的地方。我无法实例化<T>
.
public static List<T> SortedCollection<T>(SPListItemCollection items, ListSortType sortType, List<Vote> votes) where T : SCO
{
var returnlist = new List<T>();
for (int i = 0; i < items.Count; i++) { returnlist.Add(new T(items[i], votes)); }
switch (sortType)
{
// Sort List based on passed ENUM
}
return returnlist;
}
如果我可以用一种方法完成所有这些,我就可以避免一些昂贵的铸造和拳击。