2014-01-08 45 views
2

您可以共同編寫通用列表的交換例程嗎?這裏是一個交換程序將無法正常工作:共同交換列表中的兩個元素

public static void Swap(List<IComparable> list, int pos1, int pos2) 
{ 
    IComparable temp = list[pos1]; 
    list[pos1] = list[pos2]; 
    list[pos2] = temp; 
} 

打電話,是因爲這個版本的互換是不是協變Swap(new List<int>{1,2}, 0, 1)不會在這裏工作。

+5

如果添加一些示例代碼,即使是僞代碼,理解你在說什麼也會容易得多。 –

+0

牆上的文字和沒有代碼。我懶得看完所有的東西。 –

+3

@HighCore並非每一個編程問題都是關於代碼的。習慣它。 – poke

回答

1

這是否適合您?

public static void Swap<T>(this List<T> list, int pos1, int pos2) 
{ 
    T tmp = list[pos1]; 
    list[pos1] = list[pos2]; 
    list[pos2] = tmp; 

} 

這允許您指定類型並使交換成爲可能。

+0

很好的答案,jsobo。我愚蠢的不認識它。下次出現時會做好準備!再次感謝! –