对于下面的datatable列,获取最小值和最大值的最快方法是什么?

AccountLevel  
0  
1  
2  
3 

推荐答案

int minAccountLevel = int.MaxValue;
int maxAccountLevel = int.MinValue;
foreach (DataRow dr in table.Rows)
{
    int accountLevel = dr.Field<int>("AccountLevel");
    minAccountLevel = Math.Min(minAccountLevel, accountLevel);
    maxAccountLevel = Math.Max(maxAccountLevel, accountLevel);
}

是的,这真的是最快的方法.使用LINQMinMax扩展总是比较慢,因为您必须迭代两次.您可能会使用LINQAggregate,但语法不会比现在更漂亮.

.net相关问答推荐

为什么在WinForm应用程序中创建组件类椭圆会在www.example.com中没有响应

DotNet COM初始化问题

EGC / 文本元素上的 .NET String.Split

dotnet ef dbcontext scaffold command --data-annotations 或 -d 命令行参数似乎不起作用

代码访问安全是否在任何现实世界中使用?

无法解析此引用.找不到程序集

在 C# 中将字符串转换为 colored颜色

value 的默认参数必须是编译时间常数?

如何摆脱 VS2008 中的目标程序集不包含服务类型错误消息?

您是否使用 TestInitialize 或测试类构造函数来准备每个测试?为什么?

重新启动(回收)应用程序池

C# 有办法给我一个不可变的字典吗?

File.ReadAllLines() 和 File.ReadAllText() 有什么区别?

托管和非托管代码、内存和大小有什么区别?

如何在 C# 中仅设置 DateTime 变量的时间部分

System.Speech.Recognition 和 Microsoft.Speech.Recognition 有什么区别?

在 .NET 中计算目录大小的最佳方法是什么?

是否可以完全用托管的 .NET 语言编写 JIT 编译器(本地代码)

将字典值转换为数组

如何在安装后立即启动 .NET Windows 服务?