2017-02-27 133 views
0

我正在努力解決這個問題。對象集合中的屬性數量

我有一個類,它存儲電子表格中每個單元格的單元格信息。

public class Datacollection 
{ 
    public int rowNumber { get; set; } 
    public string colName { get; set; } 
    public string colValue { get; set; } 
} 

在其他地方我然後加載一個Excel電子表格,因爲這些物體

private static List<Datacollection> _dataCol = new List<Datacollection>(); 

電子表格我裝載有3列和3000行的集合,所以我收藏的規模是9000一電子表格中每個單元格的Datacollection對象。

如何從此集合中獲取行數?我想我會需要'rowNumber'的最高值,但我不知道如何獲取這個值。

非常感謝,

+1

'_dataCol.Count()'會給一些項目。 '_dataCol.Max(x => x.rowNumer)'會給出最大行號 –

+2

除了您現在收到的答案之外,現在應該瞭解.NET命名約定並開始關注它們。 (我也建議存儲單元信息的東西應該更好地命名爲'Cell'或'CellInformation'或類似的,而不是'Datacollection'。) –

回答

2

如果行號是連續從1日開始,您可以簡單地使用LINQ的Max擴展:

var rowCount = _dataCol.Max(cell => cell.rowNumber); 

但是,如果他們確實從一個任意數字開始,而不是1,或者如果行號有空位,您需要找到計數o ˚F不同行號:

var rowCount = _dataCol.Select(cell => cell.rowNumber).Distinct().Count(); 

如果您確信每行都有正好三列,更快的方式當然會是var rowCount = _dataCol.Count/3;

+0

不會rowCount只是_dataCol.Count? 爲什麼我們需要除以3? –

+0

@AdityaKorti因爲'_dataCol'包含一個元素_per_。所以'_dataCol.Count'不僅是行數,而是行數乘以列數。 –

+0

我認爲這是爲了排。 每個單元一個對象實際上沒有任何意義。 –

1

要得到rowNumber最大值,你可以使用LINQ:

var rowCount = _dataCol.Max(x => x.rowNumber);