我想通過使用ArrayList創建自己的多線程mergesort算法。我在Java中熟悉這種方法,但試圖將它帶入C#並沒有按計劃運行。嘗試比較兩個ArrayList項目Error 1 Operator '<' cannot be applied to operands of type 'object' and 'object'
時出現以下錯誤。我知道你不能直接比較這樣的兩個對象,在Java中你可以使用compareTo或類似的東西,是否有任何等效的C#?檢查ArrayList中的哪個項更小c#
這裏是導致錯誤的代碼,如果你需要的話,記住我從我的一個Java程序中使用整型數組複製了它。
int size = (last - first) + 1;
ArrayList temp = new ArrayList();
int mid = (first + last)/2;
int i1 = 0;
int i2 = first;
int i3 = mid + 1;
while(i2 <= mid && i3 <= last)
{
if(list[i2] < list[i3])
temp[i1++] = list[i2++];
else temp[i1++] = list[i3++];
}
while(i2 <= mid)
temp[i1++] = list[i2++];
while(i3 <= last)
temp[i1++] = list[i3++];
i3 = first;
for(i1 = 0; i1 < temp.Count; i1++, i3++)
list[i3] = temp[i1];
這裏有一個提示:不要使用'ArrayList',使用類型列表,例如'List'。 –
DavidG
你的'list' var聲明在哪裏? –
好的,我將如何去比較列表中的兩個項目? –