Для комбинаций вы хотите это:
combinations <- lapply(seq_along(weights), function(x) combn(weights, x))
Затем для сумм:
sums <- lapply(combinations, colSums)
inds <- lapply(sums, function(x) which(x == 1))
lapply(seq_along(inds), function(x) combinations[[x]][, inds[[x]]])
Вы используете VB9? Если так, я использовал бы лямбда-выражение для создания Comparer(Of Schedule_PayItem)
. Иначе запишите короткий класс для реализации IComparer(Of Schedule_PayItem)
. передайте, какой бы ни один Вы вошли в Список. Вид.
пример для (непротестированного) лямбда-выражения:
m_equipmentList.Sort(Function(p1, p2) p1.ResourceID.CompareTo(p2.ResourceID))
И для IComparer(Of Schedule_PayItem)
:
Public Class PayItemResourceComparer
Implements IComparer(Of Schedule_PayItem)
Public Function Compare(ByVal p1 As Schedule_PayItem, _
ByVal p2 As Schedule_PayItem) As Integer
Return p1.ResourceID.CompareTo(p2.ResourceID)
End Function
End Class
...
m_equipmentList.Sort(New PayItemResourceComparer)
Попробуйте это
Dim m_equipmentList As New List(Of Schedule_Payitem)
m_equipmentList.Sort(delegate(Schedule_Payitem p1, Schedule_Payitem p2)
{
return p1.resourceid .CompareTo(p2.resourceid );
});
Я не знаю vb.net, таким образом, я сделал это в C#
m_equipmentList.Sort(
(payItem1,payItem2)=>payItem1.ResourceID.CompareTo(payItem2.ResourceID));
, и использование отражателя перевело его в vb.net, надеются, что это помогает
m_equipmentList.Sort(
Function (ByVal payItem1 As Schedule_Payitem, ByVal payItem2 As Schedule_Payitem)
Return payItem1.ResourceID.CompareTo(payItem2.ResourceID)
End Function)
, или можно наследовать Schedule_Payitem от IComparable и реализовать CompareTo и затем просто звонить m_equipmentList.Sort()