Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.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# DataTable.AsEnumerable().ToList();如果数据为int,则最小/最大返回值无效_C#_Datatable - Fatal编程技术网

C# DataTable.AsEnumerable().ToList();如果数据为int,则最小/最大返回值无效

C# DataTable.AsEnumerable().ToList();如果数据为int,则最小/最大返回值无效,c#,datatable,C#,Datatable,在上面的代码中,如果我有 列|秩 心脏病| 9 肺| 10 minValue将返回为10,maxvalue将返回为9。我的猜测是因为它被视为字符串,即使每个值都是int。有没有办法解决这个问题?如果您的秩列是整数且不包含null: var list = ProcessedInformationTable.AsEnumerable().ToList(); var minValue = list.Min(v => v["Rank"]);

在上面的代码中,如果我有
  • 列|秩
  • 心脏病| 9
  • 肺| 10

  • minValue将返回为10,maxvalue将返回为9。我的猜测是因为它被视为字符串,即使每个值都是int。有没有办法解决这个问题?

    如果您的秩列是整数且不包含null:

    var list = ProcessedInformationTable.AsEnumerable().ToList();
                            var minValue = list.Min(v => v["Rank"]);
                            var maxValue = list.Max(v => v["Rank"]);
    
    v[“Rank”]
    最有可能在计算时使用内置的
    对象.ToString()
    将其转换为字符串。

    不要从
    数据表创建一个
    列表
    ,它只会将所需内存增加一倍,而没有任何好处。使用
    Linq到数据集
    ,它是
    Linq到对象
    的子集

    要么列的类型已经是
    int
    ,那么您必须相应地强制转换它,要么它实际上是
    string
    。然后,您必须更改该选项或首先使用
    ìnt.Parse

    var list = ProcessedInformationTable.AsEnumerable().ToList();
    var minValue = list.Min(v => (int)v["Rank"]);
    var maxValue = list.Max(v => (int)v["Rank"]);
    
    var rows=processedFormationTable.AsEnumerable();
    int minValue=rows.Min(r=>r.Field(“Rank”);
    int maxValue=rows.Max(r=>r.Field(“Rank”);
    
    如果是字符串:

    var rows = ProcessedInformationTable.AsEnumerable();
    int minValue = rows.Min(r => r.Field<int>("Rank"));
    int maxValue = rows.Max(r => r.Field<int>("Rank"));
    
    int-minValue=rows.Min(r=>int.Parse(r.Field(“Rank”));
    intmaxvalue=rows.Max(r=>int.Parse(r.Field(“Rank”));
    
    列数据类型
    int
    在数据表中吗?@YuriyGalanter我没有指定数据表类型,因为它来自一个sql查询什么是“equired”内存?如果是错别字,不知道是什么。
    int minValue = rows.Min(r => int.Parse(r.Field<string>("Rank")));
    int maxValue = rows.Max(r => int.Parse(r.Field<string>("Rank")));