2014-02-21 17 views
0

Я бы вам преобразовать это из C# код в vb.netкак преобразовать C# в vb.net

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

if (ConnectedUsers.Count(x => x.ConnectionId == id) == 0){ 
    //do somthing 
} 

Я пытался конвертировать с сайта

http://www.developerfusion.com/tools/convert/csharp-to-vb/

и Я получил этот код,

If ConnectedUsers.Count(Function(x) x.ConnectionId = id) = 0 Then 
    'do something 
end if 

, но не работает в Visual Studio говорит мне (ошибка в этой части «ConnectedUsers.Cou nt ') "' Открытый объект ReadOnly count как целое 'Не имеет параметров, и его возвращаемое значение не может быть проиндексировано. "

Заранее спасибо за помощь

Edit 1 Я положил его заявление

Shared ConnectedUsers As New List(Of UserDetail)() 

и в другом классе в том же пространстве имен я получил эту

Imports System.Collections.Generic 
Imports System.Linq 
Imports System.Web 

Namespace SignalRChat.Common 
    Public Class UserDetail 
     Public Property ConnectionId() As String 
      Get 
       Return m_ConnectionId 
      End Get 
      Set(value As String) 
       m_ConnectionId = Value 
      End Set 
     End Property 
     Private m_ConnectionId As String 
     Public Property UserName() As String 
      Get 
       Return m_UserName 
      End Get 
      Set(value As String) 
       m_UserName = Value 
      End Set 
     End Property 
     Private m_UserName As String 
    End Class 
End Namespace 
+0

А как вы перевели декларацию? – Steve

+0

Для справки: синтаксис лямбда в VB.NET: http://msdn.microsoft.com/en-us/library/bb531253.aspx –

+1

Вы пропустили статический список ... conversion => Общие подключенныеUsers как новый список (Of UserDetail)() – woutervs

ответ

2

Вы также можете попробовать с

If ConnectedUsers.Where(Function(x) x.ConnectionId = id).Count = 0 Then 
    Console.WriteLine("bingo") 
end if 

Или заставить ваш список ConnectedUsers к IEnumerable и вызвать правильный метод Count

if ConnectedUsers.AsEnumerable().Count(Function(x) x.ConnectionId = id) Then 
    Console.WriteLine("bingo") 
end if 
+0

спасибо, что это сработало – sviluppocsharp

4

Используйте это:

Shared ConnectedUsers As New List(Of UserDetail)() 
If ConnectedUsers.Count(Function(x) x.ConnectionId = id) = 0 Then 
End If 

Я рекомендую использовать http://converter.telerik.com/ для преобразования C# в vb или наоборот.

Но помните, что конвертировать код по строкам, другой мудрый, он будет вызывать ошибку.

+0

У меня также были лучшие переводы C#/vb с telerik, чем некоторые другие альтернативы. – Sean

+0

@ Дайте согласие, да, это именно то, что у меня есть, и компилятор дает мне ошибку, которую вы можете прочитать в сообщении. Я должен добавить, что объявление находится за пределами sub, содержащего оператор if. – sviluppocsharp

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