【问题标题】:Convert C# Linq query to VB.Net Linq将 C# Linq 查询转换为 VB.Net Linq
【发布时间】:2016-03-05 05:23:38
【问题描述】:

我有一个项目,我在 if 条件中使用 Linq 查询来检查条件是真还是假,并且它在我的 C# 项目中工作正常。现在我有另一个项目,我想使用相同的东西,但问题是这个项目在 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);

            }

        }
        }

它的 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# 中,我们会说“使用 System.Linq;”在文件顶部以允许访问 System.Linq.Enumerable 上的扩展方法。你做过什么相当于 vb 的事情吗?
  • 是的,我已经转换了整个页面,我已经包含了这些命名空间: Imports System.Collections.Generic Imports System.Linq Imports System.Web Imports Microsoft.AspNet.SignalR Imports SignalRChat.Common
  • 你有'选项推断'吗?如果你没有这个,那么 'id' 将被输入为 'Object'。
  • 在哪里可以找到这个@dave

标签: c# .net vb.net linq signalr


【解决方案1】:

我得到了你需要做这样的事情的解决方案:

如果 ConnectedUsers.AsEnumerable.Count(Function(x) x.ConnectionId = id) = 0 那么

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-25
    • 1970-01-01
    相关资源
    最近更新 更多