使用LINQ获取最小长度时出现问题?

问题描述

| 在这里,我正在检索目录中文文件的最小大小。但是它给出的最小大小为``0''。但是该目录中没有0 kb文件
var queryList3Only= (from i in di.GetFiles(\"*.txt\",SearchOption.AllDirectories)
                     select i.Length / 1024).Min();
dest.WriteLine(queryList3Only.ToString()+\" Kb\");
有什么建议吗?     

解决方法

        您需要选择“ doubles not int \”。如果文件大小小于1024,则大小为0
var queryList3Only= (from i in di.GetFiles(\"*.txt\",SearchOption.AllDirectories)
                     select (double)i.Length / 1024).Min();
    ,        如果您的文件少于1024字节,则它们将显示为零,因为整数除法将被截断。
1023 / 1024 = 0
您可能会发现将值转换为双精度值会得到0到1之间的答案。     ,        
i.Length
长。当
i.Length
小于1024时,
i.Length / 1024
将返回0。 改用
i.Length / 1024.0