VSTO裏轉置C#數組

大家都知道,C#裏沒有直接的方法能轉置一個數組,所以一般都用循環來完成。
爲此我上次專門在CSDN上發了個貼,詢問VSTO裏用C#有沒有辦法可以不用循環來轉置數組,但沒得到結果,爲此我還抱怨了微軟好久,C#的功能竟然還不及VBA。
今天,突然閃過一個念頭,VBA裏可以調用EXCEL的工作表函數,那VSTO裏是否也可以呢?試了一下,原來真可以,鬱悶了,以前轉了那麼多彎路。
測試代碼如下:
private void button1_Click(object sender, EventArgs e)
{
        int[,] arr = new int[5, 5];
        int count=0;
        for (int i = 0; i < 5; i++)
        {
                for (int j =0; j < 5; j++)
                {
                        arr[i,j] = count;
                        count++;
                }
        }
        Range["a1", missing].get_Resize(5, 5).Value2= arr;
        Range["a10", missing].get_Resize(5, 5).Value2 =
                Application.WorksheetFunction.Transpose(arr);
}

想通這個道理,以後用起VSTO來就可以少走許多彎路了,比如C#的數組裏需要取一個最大值,可以用EXCEL的MAX函數,簡便了許多。


作者:laoyebin(Paladin.lao)
個人網站英文出處:http://mrvsto.com/
個人網站中文出處:http://cn.mrvsto.com/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章