2014-12-03 53 views
0

這是我在c#中的代碼。我需要轉換爲vb.net。我已經使用了一些在線轉換器,但似乎不正確。VB.NET中的LINQ語法命令

 var listResult = new List<GridViewO365Model>(); 
     listResult.Add(new GridViewO365Model("AB", 1, DateTime.Now, "ROC1", "CO1", "CODesc1", "ReType1", "Error 1")); 
     listResult.Add(new GridViewO365Model("FF", 1, DateTime.Now.AddHours(1), "ROC1", "CO1", "CODesc1", "ReType1", "Error 1")); 
     listResult.Add(new GridViewO365Model("GG", 1, DateTime.Now.AddHours(2), "ROC1", "CO1", "CODesc1", "ReType1", "Error 1")); 
     listResult.Add(new GridViewO365Model("CD", 2, DateTime.Now, "ROC2", "CO2", "CODesc2", "ReType2", "Error 2")); 

     listResult = (from p in listResult 
        group p by p.ReqID into grp 
        select grp.OrderByDescending(g => g.LogDate).First()).ToList(); 

我只需要VB中的LINQ命令。幫助任何人?

回答

1

這裏的另一個拿到這個:

  • initializer syntax速記也提供給VB,我已經應用到您的收藏創作
  • 由於C#查詢混合查詢和lambda語法,我VE在VB

Dim listResult As New List(Of GridViewO365Model) From { 
    New GridViewO365Model("AB", 1, DateTime.Now, "ROC1", "CO1", "CODesc1", "ReType1", "Error 1"), 
    New GridViewO365Model("AB", 1, DateTime.Now, "ROC1", "CO1", "CODesc1", "ReType1", "Error 1"), 
    New GridViewO365Model("FF", 1, DateTime.Now.AddHours(1), "ROC1", "CO1", "CODesc1", "ReType1", "Error 1"), 
    New GridViewO365Model("GG", 1, DateTime.Now.AddHours(2), "ROC1", "CO1", "CODesc1", "ReType1", "Error 1"), 
    New GridViewO365Model("CD", 2, DateTime.Now, "ROC2", "CO2", "CODesc2", "ReType2", "Error 2")} 

listResult = listResult _ 
    .GroupBy(Function(p) p.ReqId) _ 
    .Select(Function(grp) grp.OrderByDescending(Function(g) g.LogDate).First) _ 
    .ToList() 
標準化的lambda語法
1
Dim listResult = New List(Of GridViewO365Model)() 
listResult.Add(New GridViewO365Model("AB", 1, DateTime.Now, "ROC1", "CO1", "CODesc1", _ 
    "ReType1", "Error 1")) 
listResult.Add(New GridViewO365Model("FF", 1, DateTime.Now.AddHours(1), "ROC1", "CO1", "CODesc1", _ 
    "ReType1", "Error 1")) 
listResult.Add(New GridViewO365Model("GG", 1, DateTime.Now.AddHours(2), "ROC1", "CO1", "CODesc1", _ 
    "ReType1", "Error 1")) 
listResult.Add(New GridViewO365Model("CD", 2, DateTime.Now, "ROC2", "CO2", "CODesc2", _ 
    "ReType2", "Error 2")) 

listResult = (From grp In From p In listResultGroup p By p.ReqIDgrp.OrderByDescending(Function(g) g.LogDate).First()).ToList() 

有許多在線的C#到VB轉換器在線。你可以用很少的修改來使用它。