2016-03-05 4 views
-1

У меня есть проект, в котором я использую запрос Linq в том случае, если условие для проверки условия является истинным или ложным и его работа отлично работает в моем проекте C#. Теперь у меня есть другой проект, где я хочу использовать одно и то же, но проблема заключается в том, что этот проект находится в vb.net, и я получаю проблемы при преобразовании запросов Linq. Мой запрос LINQ в C# как это:Преобразование запроса CQ Linq в VB.Net Linq

#region Data Members 

     static List<UserDetail> ConnectedUsers = new List<UserDetail>(); 
     static List<MessageDetail> CurrentMessage = new List<MessageDetail>(); 

     #endregion 

     #region Methods 

     public void Connect(string userName) 
     { 
      var id = Context.ConnectionId; 


      if (ConnectedUsers.Count(x => x.ConnectionId == id) == 0) 
      { 
       ConnectedUsers.Add(new UserDetail { ConnectionId = id, UserName = userName }); 

       // send to caller 
       Clients.Caller.onConnected(id, userName, ConnectedUsers, CurrentMessage); 

       // send to all except caller client 
       Clients.AllExcept(id).onNewUserConnected(id, userName); 

      } 

     } 
     } 

Его vb.net эквивалент, как это:

#Region "Data Members" 

     Shared ConnectedUsers As New List(Of UserDetail)() 
     Shared CurrentMessage As New List(Of MessageDetail)() 

#End Region 

#Region "Methods" 
Public Sub Connect(userName As String) 
      Dim id = Context.ConnectionId 

      If ConnectedUsers.Count(Function(x) x.ConnectionId = id) = 0 Then 


       ConnectedUsers.Add(New UserDetail() With { _ 
        Key .ConnectionId = id, _ 
        Key .UserName = userName _ 
       }) 

       ' send to caller 
       Clients.Caller.onConnected(id, userName, ConnectedUsers, CurrentMessage) 

       ' send to all except caller client 

       Clients.AllExcept(id).onNewUserConnected(id, userName) 
      End If 

     End Sub 

Error screen shot is like this

+0

В C# мы сказали бы «using System.Linq;» в верхней части файла, чтобы разрешить доступ к методам расширения в System.Linq.Enumerable. Вы сделали все, что эквивалентно vb? –

+0

Да я преобразовал всю страницу Я Inclued эти пространства имен: Imports System.Collections.Generic Импорт System.Linq Импорт System.Web Импорт Microsoft.AspNet.SignalR Импорт SignalRChat.Common –

+0

Есть ли у вас 'Option Infer On' ? Если у вас этого нет, тогда «id» будет набираться как «Object». –

ответ

0

Я получил решение вам нужно сделать что-то вроде этого:

Если ConnectedUsers.AsEnumerable.Count (Функция (x) x.ConnectionId = id) = 0 Затем

Смежные вопросы