2010-10-18 406 views
-1

我不能將T TYPE數組轉換爲Int數組我的代碼如下。如何在c#中實現Array.ConvertAll方法

T [] arra = new T [arr.Length];

 int [] converted = new int[arr.Length]; 
     T element; 
     for (int i = 0; i < arr.Length; i++) 
     { 
      for (int j = 0; j < arr.Length - 1-i; j++) 
      { 
       Type s = (Type)System.Int64; 
       Type t = arr.GetType(); 
       Converter<T,int> a; 
       if (t.Equals(s)) 
       { 
        Array.ConvertAll<T, int>(arr, Converter < T,int> converted); 
       } 

       if (arr[j] > arr[j + 1]) 
       {    

        element = arr[j]; 
        arr[j] = arr[j + 1]; 
        arr[j + 1] = element; 
       } 
      } 
     } 
+1

問題是什麼?你得到一個例外嗎?你是否收到編譯錯誤? – Dennis 2010-10-18 06:06:46

+0

@ Dede我收到「Convert converted」的錯誤,表示無效的表達式int – 2010-10-18 06:12:53

+0

@Pro_Zeck:因爲這不是有效的代碼。 – leppie 2010-10-18 06:19:56

回答

1
Array a = new Array(); 
    a.Cast<long>().ToArray(); 
1

我不所有清除(代碼)你正在嘗試做的,而是給的Array.ConvertAll一個典型的例子(比較):

string[] data = { "123", "456", "789" }; 
int[] ints = Array.ConvertAll(data, int.Parse); 

這裏,分配長度爲3的int[],然後(對於每個字符串)int.Parse用於從字符串轉換爲int;輸出應爲int[],其值爲123456789

更復雜的例子(使用lambda語法):

string[] data = { "abc", "def", "ghi" }; 
string[] reversed = Array.ConvertAll(data, s => { 
    char[] chars = s.ToCharArray(); 
    Array.Reverse(chars); // note; not fully i18n safe 
    return new string(chars); 
}); 

這裏拉姆達體(這是我們的轉換器)反轉每個串(通過反轉字符);結果應該是string[],其值爲"cba","fed","ihg"

相關問題