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
不仅是行数,而且是行数乘以列数。我以为是行数。每个单元一个对象实际上没有任何意义。