C#可以用if(xx[I]!=double.NaN)来判断数组中是否存在NaN吗

时间: 2023-06-20 09:07:20 浏览: 60
不可以。在C#中,NaN是一个特殊的值,它不等于任何值,包括它自己。因此,使用“!=”运算符来比较一个值是否等于NaN将始终返回true,即使值本身是NaN。相反,应该使用double.IsNaN(xx[I])方法来检查数组中的值是否为NaN。例如: ``` if (double.IsNaN(xx[I])) { // 数组中的值是NaN } else { // 数组中的值不是NaN } ```
相关问题

在C#中 double[] Samples = lstReportsDis.Select(f => f.TestValue).ToArray();将该数组,每十个为一组,分成若干数组,然后对每一个数组进行如下求值lstReportsCPK.Where(f => !f.TestValue.Equals(double.NaN)).Average(f => f.TestValue);再将所有求得的所有结果进行求平均

您好,您可以使用 LINQ 的扩展方法 `Batch` 将一个数组分成若干个固定大小的子数组,然后再对每个子数组求平均值,最后再对所有平均值求平均值。具体实现代码如下: ```csharp double[] Samples = lstReportsDis.Select(f => f.TestValue).ToArray(); // 将 Samples 数组分成若干个大小为 10 的子数组 var subArrays = Samples.Batch(10); // 对每个子数组求平均值 var averages = subArrays.Select(subArray => lstReportsCPK .Where(f => !f.TestValue.Equals(double.NaN) && subArray.Contains(f.TestValue)) .Average(f => f.TestValue)); // 对所有平均值求平均值 double result = averages.Average(); ``` 需要注意的是,在对每个子数组求平均值时,我们使用了 `lstReportsCPK.Where(f => !f.TestValue.Equals(double.NaN) && subArray.Contains(f.TestValue))` 这个 LINQ 查询,它会筛选出 `lstReportsCPK` 列表中符合以下两个条件的元素: - `TestValue` 不等于 `double.NaN`; - 在当前子数组中。 最后,我们对筛选出的元素求平均值,得到这个子数组的平均值。

C#中 ,R3 = BLOB.Count(x => x != 0);R4 = BLOB1.Count(x => x != 0);需要用到的指令集

这两行代码用到了 C# 中的 Lambda 表达式和 LINQ 扩展方法。 Lambda 表达式是一种匿名函数,可以用来简化代码和提高可读性。在这里,`x => x != 0` 表示一个输入为 x 的函数,它的返回值是一个布尔值,当 x 不等于 0 时返回 true,否则返回 false。 LINQ 是一种语言集成查询的技术,可以用来对各种数据源进行筛选、排序、分组等操作。在这里,我们使用了 LINQ 扩展方法 `Count`,它用来计算序列中满足指定条件的元素个数。具体来说,`BLOB.Count(x => x != 0)` 表示计算 BLOB 数组中满足 x 不等于 0 的元素个数。 需要注意的是,使用 LINQ 扩展方法需要添加命名空间 `System.Linq`。因此,你需要在代码的开头添加如下语句: ``` using System.Linq; ```

相关推荐

//修订号比较,s1大返回1,s2大返回-1,相等返回0;如果发生错误返回错误 func compareCor(s1, s2 string) (int,error ){ var i int //去除前导0 for { if i >= len(s1){ s1 = "0" break } if s1[i] == '0' { i++ } else { s1 = s1[i:] break } } i = 0 for { if i >= len(s2){ s2 = "0" break } if s2[i] == '0' { i++ } else { s2 = s2[i:] break } } if len(s1) == 0{ if len(s2) == 0{ return 0,nil }else{ return -1,nil } } s1Int,err := strconv.Atoi(s1) if err != nil { // log.Println("") return 0,err } s2Int,err := strconv.Atoi(s2) if err != nil { return 0,err } if s1Int == s2Int { return 0,nil }else if s1Int > s2Int{ return 1,nil }else{ return -1,nil } } //版本号比较,s1大返回1,s2大返回-1,相等返回0;发生错误则返回错误 func compare(version1 string, version2 string) (int,error ){ // write code here arr1 := strings.Split(version1, ".") arr2 := strings.Split(version2, ".") log.Println("arr1:",arr1) log.Println("arr2:",arr2) i := 0 for ;i < len(arr1) && i < len(arr2);i++{ res,err := compareCor(arr1[i],arr2[i]) if err != nil { log.Println("compareCor ERROR:",err) return 0,err } if res != 0 { return res,nil } } if len(arr1) == len(arr2) { return 0,nil } if len(arr1) > len(arr2){ for ;i < len(arr1);i++{ res,err := compareCor(arr1[i],"0") if err != nil { return 0,err }else{ if res != 0{ return res,nil } } } return 0,nil }else{ for ;i < len(arr2);i++{ res,err := compareCor("0",arr2[i]) if err != nil { return 0,err }else{ if res != 0{ return res,nil } } } return 0,nil } }这是go 语言的代码,转为C#代码

最新推荐

recommend-type

C# 字符串string和内存流MemoryStream及比特数组byte[]之间相互转换

定义string变量为str,内存流变量为ms,比特数组为bt 1.字符串转比特数组 代码如下:(1)byte[] bt=System.Text.Encoding.Default.GetBytes(“字符串”); (2)byte[] bt=Convert.FromBase64String(“字符串”); 2.字符...
recommend-type

C#中委托的+=和-=深入研究

主要介绍了C#中委托的+=和-=深入研究,本文深入研究+=和-=在执行时都做了哪些事情,加深对C#委托的理解和使用,需要的朋友可以参考下
recommend-type

详解C#中的System.Timers.Timer定时器的使用和定时自动清理内存应用

主要介绍了详解C#中的System.Timers.Timer定时器的使用和定时自动清理内存应用,需要的朋友可以参考下
recommend-type

C#中判断一个集合是否是另一个集合的子集的简单方法

本文介绍利用C#中内置的系统函数判断一个集合是否是一个集合的子集的方法,此方法代码量极少,分享给大家。
recommend-type

详解C#中一维数组的插入

本文内容给大家分享了在C#中进行一维数组的插入的详细实例代码,大家可以测试下。
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

MATLAB柱状图在信号处理中的应用:可视化信号特征和频谱分析

![matlab画柱状图](https://img-blog.csdnimg.cn/3f32348f1c9c4481a6f5931993732f97.png) # 1. MATLAB柱状图概述** MATLAB柱状图是一种图形化工具,用于可视化数据中不同类别或组的分布情况。它通过绘制垂直条形来表示每个类别或组中的数据值。柱状图在信号处理中广泛用于可视化信号特征和进行频谱分析。 柱状图的优点在于其简单易懂,能够直观地展示数据分布。在信号处理中,柱状图可以帮助工程师识别信号中的模式、趋势和异常情况,从而为信号分析和处理提供有价值的见解。 # 2. 柱状图在信号处理中的应用 柱状图在信号处理
recommend-type

HSV转为RGB的计算公式

HSV (Hue, Saturation, Value) 和 RGB (Red, Green, Blue) 是两种表示颜色的方式。下面是将 HSV 转换为 RGB 的计算公式: 1. 将 HSV 中的 S 和 V 值除以 100,得到范围在 0~1 之间的值。 2. 计算色相 H 在 RGB 中的值。如果 H 的范围在 0~60 或者 300~360 之间,则 R = V,G = (H/60)×V,B = 0。如果 H 的范围在 60~120 之间,则 R = ((120-H)/60)×V,G = V,B = 0。如果 H 的范围在 120~180 之间,则 R = 0,G = V,B =
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。