C#datatable,两个对象,一个对象时A,一个是B,如何使每10个A对象,对应的B的最大值
时间: 2024-03-23 10:42:15 浏览: 146
C#写的2个数字的比较,输出其中的最大值的算法
4星 · 用户满意度95%
假设你有一个名为dataTable的datatable,其中有两列,分别为A和B。你可以使用以下代码来实现每10个A对象对应的B对象的最大值:
```
int batchSize = 10;
var aList = dataTable.AsEnumerable().Select(row => row.Field<int>("A")).ToList();
var bList = dataTable.AsEnumerable().Select(row => row.Field<int>("B")).ToList();
List<int> maxBList = new List<int>();
for (int i = 0; i < aList.Count; i += batchSize)
{
int maxB = bList.Skip(i).Take(batchSize).Max();
maxBList.Add(maxB);
}
// maxBList中的元素就是每10个A对象对应的B对象的最大值
```
首先,我们使用AsEnumerable方法将datatable转换为一个可枚举的集合,然后使用Select方法将A和B列分别转换为两个List集合。
接下来,我们使用一个循环来遍历A集合,每次跳过10个元素并取出接下来的10个元素对应的B集合,然后使用Max方法获取最大值,并将最大值添加到一个新的List集合中。
最终,maxBList中的元素就是每10个A对象对应的B对象的最大值。
阅读全文