LINQ

自定义计算公式语言是基于VB和可扩展LINQ。你可以在任何时候写下你的公式LINQ如果你不能够执行你的计算与预定义的功能。

下面是一些有用的LINQ表达式的列表。这不是详尽的。请参阅微软Visual basic LINQ文档以了解更多的细节。

推荐链接:

过滤器

过滤器的原理是根据一个谓词过滤一个给定的项目列表。应用过滤器,您需要:

  • 一个列表过滤

  • 一个谓词(函数列表项,返回一个布尔)

结果是一个新的输入列表的项目列表。

新列表中的条目的数量小于输入列表。

语法:

  • InputList.Where(函数(x)谓词)

  • 地点:调用过滤器吗

  • 功能:编写谓词

例子:

CurrentSignal.AllPeaks.Where(函数(p) p.Peak_Area > 1.2和p.Peak_Height < 1000)返回一个列表的峰面积大于1.2,高度低于1000。

你可以在公式中使用这个列表的总和所有山峰的地区列表中:

Sum (“Peak_Area CurrentSignal.AllPeaks.Where(函数(p) p.Peak_Area > 1.2和p.Peak_Height < 1000))

投影

投影的原理是创建一个列表从给定的物品通过将每一个项目。应用投影,你需要:

  • 将列表

  • 一个投影函数(函数列表项,返回一个新项)

长度相同的结果是一个新的列表作为输入列表。项类型可以是不同的!

语法:

  • InputList.Select(函数(x)投影)

  • 选择:调用转换

  • 功能:编写投影函数

例子:

CurrentSignal.AllPeaks.Select(函数(p) p.Peak_Area)返回一个列表Peak_Area值从山峰的列表。

然后你可以做之和:CurrentSignal.AllPeaks.Select(函数(p) p.Peak_Area) .Sum ()

注意,这是相当于预定义的自定义计算函数Sum (“Peak_Area CurrentSignal.AllPeaks)

总原则是计算一个值从一个列表。应用聚合,你需要:

  • InputList.Select(函数(x)投影)

  • 一个列表聚合

  • 一个累积函数(函数聚合和当前项目)

  • 集料的初始值

结果是一个独特的聚合值。聚合值的类型可以是不同的项目类型。

语法:

  • InputList。总(initial value,Function(acc,x) accumulation)

  • 总:调用聚合

  • 功能:编写积累函数

例子:

(CurrentSignal.AllPeaks.Select(函数(p) p.Peak_Area))。总(" "、功能(acc, x) acc +”;“x)返回列表的所有山峰区域分离”;”。

注意,这相当于一个VB功能:字符串。加入(”;”,CurrentSignal.AllPeaks.Select(函数(p) p.Peak_Area))

(CurrentSignal.AllPeaks.Select(函数(p) p.Peak_Area) .Aggregate(0.0,函数(acc, x) acc + x)返回峰面积之和。

注意,它相当于预定义的自定义计算函数Sum (“Peak_Area CurrentSignal.AllPeaks)