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

Rob*_*ert 11 c# linq vb.net

我正在重写一个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()
Run Code Online (Sandbox Code Playgroud)

我到目前为止:

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();
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,我不确定相似的运算符是什么.我通过几个代码转换器运行它,他们不断抛出错误.

Luk*_*oid 18

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

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

LikeOperator.LikeString(gme.element_key_name, "*web", CompareMethod.Text);
Run Code Online (Sandbox Code Playgroud)

一定要包括

using Microsoft.VisualBasic.CompilerServices;
Run Code Online (Sandbox Code Playgroud)

这将获得最相同的功能,但是我认为这是一个黑客攻击.

您的其他选项将是利用的String.StartsWith,String.EndsWith,String.Contains正则表达式.


Ami*_*ich 5

使用StartsWithEndsWithContains静态方法string根据您的需求.

  • 这些方法不允许像 Like 那样使用通配符 (2认同)