c# - C# 中是否有类似 VB.NET 的运算符?

标签 c# vb.net linq

我正在重写一个 vb.net 应用程序,但我不能说我很擅长使用 vb。我需要用 C# 编写这个等价物:

Dim bigList = (From gme In dtx.gmc_message_elements 
              Where gme.element_key_name Like "*email" _
              Or gme.element_key_name Like "*web" 
              Or gme.element_key_name Like "*both" _
              Select gme.element_key_name Distinct).ToList()

我到目前为止:

var bigList = (from gme in dtx.gmc_message_elements 
               where gme.element_key_name Like "*email" 
               || gme.element_key_name Like "*web" 
               || gme.element_key_name Like "*both" 
               select gme.element_key_name).FirstOrDefault().ToList();

如您所见,我不确定 like 运算符的等价物是什么。我通过几个代码转换器运行它,它们不断地抛出错误。

最佳答案

要获得最等效的功能,请确保您的 C# 项目具有对 Microsoft.VisualBasic 程序集的引用。

然后您可以在 C# 中直接使用 VB.NET Like 运算符,例如

LikeOperator.LikeString(gme.element_key_name, "*web", CompareMethod.Text);

一定要包括

using Microsoft.VisualBasic.CompilerServices;

这将获得最等效的功能,但我认为这有点 hack。

您的其他选择是使用 String.StartsWith , String.EndsWith , String.ContainsRegex .

关于c# - C# 中是否有类似 VB.NET 的运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24812662/

相关文章:

vb.net - 使用 vb.net 查看底层 SOAP 消息

c# - 使用 Select Many 在 LINQ 方法语法中有条件地插入 Where 子句

c# - 扩展方法必须在非泛型静态类中定义

c# - 如何将数据绑定(bind)到 DataGrid 中的 ComboBox?

c# - 我可以将 StretchDirection 添加到 VisualBrush 吗?

c# - 在 WPF 中,Windows 窗体中的 Suspend/ResumeLayout() 和 BackgroundWorker() 等同于什么

c# - 只读与静态只读说明

c# - 如何在生产中部署 Owin 自托管应用程序?

asp.net - 单击按钮时如何启动另一个aspx网页?

string - .net 如何将字符串生成器与字符串进行比较