2014-02-21 103 views
0

我想你在vb.net从C#代码转换这个如何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') “'Public ReadOnly属性计数为整数'没有参数并且其返回值不能被索引。 “

预先感谢您的帮助

编辑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中的lambda语法:http://msdn.microsoft.com/en-us/library/bb531253.aspx –

+1

您错过了静态列表 ...转换=>共享ConnectedUsers作为新列表(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

与其他一些替代方案相比,我还使用telerik有更好的c#/ vb翻译。 – Sean

+0

@Amit,谢谢你,这正是我所拥有的,编译器给我的错误,你可以在帖子中阅读。我必须补充说明声明在包含if语句的sub之外。 – sviluppocsharp