2016-04-14 13 views
0

Hier meine Datentabelle ist, dass ich in einer Datentabelle Variable gespeichert haben Namen dt:VB.NET LINQ to Datatable Wählen mit Where-Klausel

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   | 

Ich brauche den Wert der AVGTAT Spalte erhalten mit LINQ to DataTable basiert Wo Carrier = "x" und Name = "X"

Wie kann ich das erreichen?

Vielen Dank!

Antwort

0

Hier ist die C# -Version.

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(); 

Und die VB.NET Version

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()