2016-04-14 64 views
0

這裏是我已經存儲在一個名爲dt的數據表變量我的數據表:VB.NET LINQ到數據表中選擇與Where子句

Dim dt As New DataTable 
+---------+--------+---------------+ 
| Carrier | AVGTAT |  Name  | 
+---------+--------+---------------+ 
| ABCD | 2078 | Term Check | 
| ABCD |  0 | AdHoc   | 
| ABCD | 26406 | Cash on Term | 
| REWS | 7358 | Failed Bill | 
| ZELT | 11585 | BL150   | 

我需要使用LINQ到AVGTAT列的值DataTable based Carrier其中Carrier =「x」和Name =「X」

我該如何做到這一點?

謝謝!

回答

0

這裏是C#版本。

var avg = (from t1 in dt.AsEnumerable() 
       select new 
       { 
        Carrier = t1.Field<string>("Carrier"), 
        Name = t1.Field<string>("Name"), 
        Avg = t1.Field<int>("AVGTAT") 

       }).Where(s => s.Carrier == "X" && s.Name == "X") 
                 .Select(v=>v.Avg).FirstOrDefault(); 

而且VB.NET版本

Dim avg = dt.AsEnumerable().[Select](Function(x) New With { 
     Key .Carrier = x.Field(Of String)("Carrier"), 
     Key .Name = x.Field(Of String)("Name"), 
     Key .Avg = x.Field(Of Int32)("Level") 
    }).Where(Function(s) s.Carrier = "X" AndAlso s.Name = "X") 
              .[Select](Function(h) h.Avg).FirstOrDefault()