VB.Net中的LINQ语句-它在做什么?
我正在努力理解LINQ的声明到底在做什么。我没有LINQ方面的经验,所以我正试图获得一些简单的英语翻译 MyDataTable包含以下数据: OrderByValues、合同、付款类型、付款金额VB.Net中的LINQ语句-它在做什么?,vb.net,linq,for-loop,Vb.net,Linq,For Loop,我正在努力理解LINQ的声明到底在做什么。我没有LINQ方面的经验,所以我正试图获得一些简单的英语翻译 MyDataTable包含以下数据: OrderByValues、合同、付款类型、付款金额 Dim groupIDs = From r In myds.MyDataTable Select OBV = r.Item("OrderByValues"), PT = r.Item("PayType"), Contract = r("Contract") Distinct For Each r in
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。第一行创建了一个查询,该查询将保存一个变量的集合。查询尚未执行,原因是。这可以分为几部分: myds.MyDataTable中的From r将r定义为IEnumerable数组或列表myds.MyDataTable的单个元素 选择OBV=r.ItemOrderByValues。。。Distinct使用名为OBV、PT、Contract的属性创建匿名类型,并从元素r中分配这些属性值。 foreach循环实际上执行查询并创建IEnumerable进行迭代。然后在这个循环中,它重复地将a、b、c设置为查询中定义的匿名类型的属性。这看起来确实有点奇怪,因为变量a、b、c只会记住最后设置给它们的值
更多阅读。linq语句在哪里?从基本知识开始,使用MSDN文档…PT=r.ItemPayType与PT=rPayType相同吗?@SimpleMan在VB中,是的。Item是默认的索引器,VB允许您省略它,因此rPayType实际上被编译为r.ItemPayType。代码中还有更多内容,为了简单起见,我只去掉了一堆。感谢所有评论的人。