Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将C#Linq查询转换为VB.Net Linq_C#_.net_Vb.net_Linq_Signalr - Fatal编程技术网

将C#Linq查询转换为VB.Net Linq

将C#Linq查询转换为VB.Net Linq,c#,.net,vb.net,linq,signalr,C#,.net,Vb.net,Linq,Signalr,我有一个项目,在我的C#项目中,我在if条件中使用Linq查询来检查条件是真是假以及它的工作正常。现在我有我的另一个项目,我想使用相同的东西,但问题是这个项目在vb.net中,我在转换Linq查询时遇到问题。我在c#中的linq查询如下: #region Data Members static List<UserDetail> ConnectedUsers = new List<UserDetail>(); static List<

我有一个项目,在我的C#项目中,我在if条件中使用Linq查询来检查条件是真是假以及它的工作正常。现在我有我的另一个项目,我想使用相同的东西,但问题是这个项目在vb.net中,我在转换Linq查询时遇到问题。我在c#中的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);

            }

        }
        }
#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

我得到了您需要执行以下操作的解决方案:

#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);

            }

        }
        }
#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

如果ConnectedUsers.AsEnumerable.Count(函数(x)x.ConnectionId=id)=0,那么在C#中,我们会在文件顶部说“using System.Linq;”,以允许访问System.Linq.Enumerable上的扩展方法。你做过vb等价物吗?是的,我转换了整个页面,我包含了以下名称空间:Imports System.Collections.Generic Imports System.Linq Imports System.Web Imports Microsoft.AspNet.signar Imports signalchat.common你有“Option infere On”吗?如果你没有这个,那么“id”将被键入为“Object”。在哪里可以找到这个@dave