簡體   English   中英

如何從鋸齒狀數組中提取一列?

[英]How to extract one column from a jagged array?

我有一個鋸齒狀的數組,它基本上只是一個具有m行和n列的矩陣(我知道我可以使用普通矩陣,但是我讀到使用鋸齒狀數組的矩陣乘法更快)。

我想只從一列中提取每一行,而不使用for循環。 這是如何完成的。 另外,請解釋一下代碼,因為我找到了一個答案,聲稱以下內容應該可以工作,但我無法弄清楚如何使其適應我的情況。

object[] column = Enumerable.Range(0, myArray.GetLength(0))
                            .Select(rowNum => (object)myArray[daily.m, daily.n])
                            .ToArray(); 

好的,因此以下答案似乎並未給我錯誤,但是現在我遇到了另一個問題:

var selectedArray = myArray.Where(o => (o != null && o.Count() > daily.dependentVarIndex)).Select(o => o[daily.dependentVarIndex]).ToArray();
            Method1 m1 = new Method1(13);
            for (int i = 0; i < daily.m; i++)
            {
                m1.do(selectedArray[i]); //this give me an error
            }

現在如何索引對象“ selectedArray”? 請注意,我在代碼前面定義了Method1,即fxn“ do”。

使用lambda:

var jaggedArray = new int[5][];
jaggedArray[0] = new[] { 1, 2, 3 }; // 3 item array
jaggedArray[1] = new[] { 7, 6 };
jaggedArray[3] = new int[10]; // 10 item array of 0's

const int selectItem = 0;
var selectedArray = jaggedArray
    .Where(o => (o != null && o.Count() > selectItem))
    .Select(o => o[selectItem])
    .ToArray();

以下數組應包含3個項目

[1,7,0]

int [][] jaggedArray = /* SNIP */

jaggedArray.Select(row => row.Length >= ZERO_INDEXED_COLUMN_NO + 1
                           ? (int?)row[ZERO_INDEXED_COLUMN_NO]
                           : null)
           .ToArray();

其中ZERO_INDEXED_COLUMN_NO是您要檢索的列的零索引數。 結果是(int?)的數組,該數組具有null值,其中給定的行要簡短以具有ZERO_INDEXED_COLUMN_NO條目。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM