VB.Net 中的 LINQ 语句 - 它在做什么?
LINQ Statement in VB.Net - What is it doing?
我正在尝试了解此 LINQ 语句的实际作用。我没有使用 LINQ 的经验,所以我正在尝试获得某种程度的 "plain english" 翻译。
MyDataTable 包含以下数据:
OrderByValues、合同、PayType、PayAmount
Dim groupIDs = From r In myds.MyDataTable Select OBV = r.Item("OrderByValues"), PT = r.Item("PayType"), Contract = r("Contract") Distinct
For Each r in groupIDS
a = r.OBV
b = r.PT
c = r.Contract
Next
我不确定这里是否有足够的信息来帮助您。如果有任何帮助,我将不胜感激。
谢谢。
它从数据表中选择所有 "OrderByValues"、"PayType" 和 "Contract" 列,忽略重复行。
然后遍历结果集,并将 3 个值分别分配给变量 "a"、"b" 和 "c"。
第一行创建一个查询,其中包含 anonymous types. The query is not executed yet because of LINQ's deferred execution 的集合。这可以分解成几块:
From r In myds.MyDataTable
将 r
定义为 IEnumerable 的单个元素(通常是数组或列表))myds.MyDataTable
Select OBV = r.Item("OrderByValues"), ... Distinct
创建一个匿名类型,其属性名为 OBV
、PT
、Contract
,并从元素 r
.[= 中分配这些属性值35=]
foreach 循环实际执行查询并创建要迭代的 IEnumerable。然后在这个循环中,它重复设置 a
、b
、c
到查询中定义的匿名类型的属性。这看起来有点奇怪,因为变量 a
、b
、c
只会记住最后一次设置的值。
更多阅读 LINQ。
我正在尝试了解此 LINQ 语句的实际作用。我没有使用 LINQ 的经验,所以我正在尝试获得某种程度的 "plain english" 翻译。
MyDataTable 包含以下数据: OrderByValues、合同、PayType、PayAmount
Dim groupIDs = From r In myds.MyDataTable Select OBV = r.Item("OrderByValues"), PT = r.Item("PayType"), Contract = r("Contract") Distinct
For Each r in groupIDS
a = r.OBV
b = r.PT
c = r.Contract
Next
我不确定这里是否有足够的信息来帮助您。如果有任何帮助,我将不胜感激。
谢谢。
它从数据表中选择所有 "OrderByValues"、"PayType" 和 "Contract" 列,忽略重复行。
然后遍历结果集,并将 3 个值分别分配给变量 "a"、"b" 和 "c"。
第一行创建一个查询,其中包含 anonymous types. The query is not executed yet because of LINQ's deferred execution 的集合。这可以分解成几块:
From r In myds.MyDataTable
将r
定义为 IEnumerable 的单个元素(通常是数组或列表))myds.MyDataTable
Select OBV = r.Item("OrderByValues"), ... Distinct
创建一个匿名类型,其属性名为OBV
、PT
、Contract
,并从元素r
.[= 中分配这些属性值35=]
foreach 循环实际执行查询并创建要迭代的 IEnumerable。然后在这个循环中,它重复设置 a
、b
、c
到查询中定义的匿名类型的属性。这看起来有点奇怪,因为变量 a
、b
、c
只会记住最后一次设置的值。
更多阅读 LINQ。