1
我有以下工作位置对实体进行排序。所需的顺序在另一个阵列中定义。在C#中这段代码的工作原理如下:在OrderBy中转换Lambda表达式从C#到VB.net谓词
IEnumerable<CreditObject> query = credits.OrderBy(x =>
{
for (int i = 0; i < list.Length; i++)
{
if (x.Job == list[i])
return i;
}
throw new NotImplementedException("Job not within List");
});
但是我必须将它转换为VB.net。我读了相当于将类似以下内容:
Dim query As IEnumerable(Of CreditObject) = credits.OrderBy(Function(x)
For j As Integer = 0 To templ.Length - 1
If x.Job = templ(j) Then
Return j
End If
Next
End Function)
这并不编译,给出了Function(x)
后我“表达期望”的权利。我究竟做错了什么?
VB.NET哪个版本您使用的? VB 9不支持带多条语句的lambda表达式 – 2012-04-24 09:46:38
好吧,我认为VB 2008是版本9,所以这可能是问题。谢谢!什么是替代方案?某种形式的代表来克服这一点? – rdoubleui 2012-04-24 09:54:27