我正在重写一个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程序集的引用.
然后,您可以直接使用Like
C#中的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
或正则表达式.