У меня есть проект, в котором я использую запрос 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
В C# мы сказали бы «using System.Linq;» в верхней части файла, чтобы разрешить доступ к методам расширения в System.Linq.Enumerable. Вы сделали все, что эквивалентно vb? –
Да я преобразовал всю страницу Я Inclued эти пространства имен: Imports System.Collections.Generic Импорт System.Linq Импорт System.Web Импорт Microsoft.AspNet.SignalR Импорт SignalRChat.Common –
Есть ли у вас 'Option Infer On' ? Если у вас этого нет, тогда «id» будет набираться как «Object». –