Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 对象集合中的属性计数_C#_List_Collections_Count - Fatal编程技术网

C# 对象集合中的属性计数

C# 对象集合中的属性计数,c#,list,collections,count,C#,List,Collections,Count,我正在努力想办法解决这个问题 我有一个类,它在电子表格中存储每个单元格的单元格信息 public class Datacollection { public int rowNumber { get; set; } public string colName { get; set; } public string colValue { get; set; } } 然后,我在其他地方加载excel电子表格作为这些对象的集合 private static List<D

我正在努力想办法解决这个问题

我有一个类,它在电子表格中存储每个单元格的单元格信息

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>();
private static List_dataCol=new List();
我正在加载的电子表格有3列3000行,所以我的集合大小是9000。电子表格中每个单元格有一个数据收集对象

public class Datacollection 
{
    public int rowNumber { get; set; }
    public string colName { get; set; }
    public string colValue { get; set; }
}
如何从该集合中获取行号计数?我想我需要“rowNumber”的最高值,但我不确定如何恢复该值


非常感谢,

要获得
行数的最大值,您可以使用LinQ:

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

要获取
rowNumber
的最大值,可以使用LinQ:

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

如果行号是连续的并且从1开始,您可以简单地使用LINQ的
Max
扩展名:

var rowCount = _dataCol.Max(cell => cell.rowNumber);
但是,如果它们以任意数字而不是1开始,或者如果行号中存在间隙,则需要找到不同的行号的计数:

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


如果您确定每行正好有三列,那么更快的方法当然是
var rowCount=\u dataCol.Count/3

如果行号连续且从1开始,则只需使用LINQ的
Max
扩展名:

var rowCount = _dataCol.Max(cell => cell.rowNumber);
但是,如果它们以任意数字而不是1开始,或者如果行号中存在间隙,则需要找到不同的行号的计数:

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


如果您确定每行正好有三列,那么更快的方法当然是
var rowCount=\u dataCol.Count/3

\u dataCol.Count()
将给出项目的计数
\u dataCol.Max(x=>x.rowNumer)
将根据您现在收到的答案给出最大行数。现在是了解.NET命名约定并开始遵循它们的好时机。(我还建议存储单元格信息的东西最好命名为
cell
CellInformation
或类似名称,而不是
Datacollection
\u dataCol.Count()
将给出项目计数
\u dataCol.Max(x=>x.rowNumer)
将根据您现在收到的答案给出最大行数。现在是了解.NET命名约定并开始遵循它们的好时机。(我还建议存储单元格信息的东西最好命名为
cell
CellInformation
或类似名称,而不是
Datacollection
)rowCount不就是_dataCol.Count吗?为什么我们需要除以3?@AdityaKorti因为
\u dataCol
每个单元格包含一个元素。因此,
\u dataCol.Count
不仅是行数,而且是行数乘以列数。我以为是行数。每个单元格一个对象实际上没有任何意义。行计数不就是_dataCol.Count吗?为什么我们需要除以3?@AdityaKorti因为
\u dataCol
每个单元格包含一个元素。因此,
\u dataCol.Count
不仅是行数,而且是行数乘以列数。我以为是行数。每个单元一个对象实际上没有任何意义。