我在c#陣列是基於1的(從到的get_value呼叫用於Excel範圍 生成的I得到例如2D陣列調整基線C#中的基於1的陣列
object[,] ExcelData = (object[,]) MySheet.UsedRange.get_Value(Excel.XlRangeValueDataType.xlRangeValueDefault);
這似乎作爲例如ExcelData [1..20,1..5]
有沒有辦法告訴編譯器底墊,這樣我就不需要加1,循環計數器的全部時間?
數組List<string> RowHeadings = new List<string>();
string [,] Results = new string[MaxRows, 1]
for (int Row = 0; Row < MaxRows; Row++) {
if (ExcelData[Row+1, 1] != null)
RowHeadings.Add(ExcelData[Row+1, 1]);
...
...
Results[Row, 0] = ExcelData[Row+1, 1];
& other stuff in here that requires a 0-based Row
}
它使東西le ss可讀,因爲當創建數組寫入數組時將基於零。
c#中的數組始終爲0,您的意思是說您的數據是基於1的? – cjk 2009-09-30 12:34:15
在C#源代碼中聲明*的數組始終是基於0的,但CLR支持具有任意下限的數組。 – 2009-09-30 12:56:28
在c#中數組_created_很可能是基於零的,但是我相信我是正確的,說這裏的數組是基於1的 - 如果你嘗試訪問ExcelData [0,0],就會拋出IncexOutOfRangeException。 – GalleySlave 2009-09-30 13:11:18