从C#到Vb.net的正确Linq转换

从C#到Vb.net的正确Linq转换,c#,vb.net,linq,C#,Vb.net,Linq,我正在寻找这个C#Linq代码到VB.net的精确转换。我尝试了许多工具将C#转换为VB,但没有一个VB转换语句返回正确的结果 C# 假设该过程选择Gridview的行,不包括通过单击选择的行。 返回所有行,不排除任何行 C# 谢谢您的帮助。试试这个: Dim btnUp As Button = DirectCast(sender, Button) Dim row As GridViewRow = DirectCast(btnUp.NamingContainer, GridViewRow) Di

我正在寻找这个C#Linq代码到VB.net的精确转换。我尝试了许多工具将C#转换为VB,但没有一个VB转换语句返回正确的结果

C#

假设该过程选择Gridview的行,不包括通过单击选择的行。
返回所有行,不排除任何行

C#

谢谢您的帮助。

试试这个:

Dim btnUp As Button = DirectCast(sender, Button)
Dim row As GridViewRow = DirectCast(btnUp.NamingContainer, GridViewRow)
Dim rows = GridView1.Rows.Cast(Of GridViewRow)().Where(Function(a) a <> row).ToList()
Dim btnUp As Button=DirectCast(发送方,按钮)
作为GridViewRow=DirectCast的尺寸行(btnUp.NamingContainer,GridViewRow)
Dim rows=GridView1.rows.Cast(属于GridViewRow)().Where(函数(a)一行).ToList()

您能否澄清结果不正确的原因?它们是否返回所选行?他们是否过滤掉了太多的行?他们只是返回要过滤的行吗,等等。我猜
a行
会比
a不是行
好,但是vb.net的微妙之处有时超出了我的理解……你试过了吗?你的石膏正确吗?您确定rows属性中有该行的实例吗?所有行都是返回的,没有排除任何行。您的代码在语法上没有问题。因此它必须是逻辑上的…调试它并确保该行实际上在初始集合中。IsNot是完全有效的,因为它执行引用相等性检查。不起作用。***错误73重载解析失败,因为无法使用以下参数调用可访问的“Where”:
 Dim rows = GridView1.Rows.Cast(Of GridViewRow)().Where(Function(a) a IsNot row).ToList()
Button btnUp = (Button)sender;
GridViewRow row = (GridViewRow)btnUp.NamingContainer;
 // Get all items except the one selected
var rows = GridView1.Rows.Cast<GridViewRow>().Where(a => a != row).ToList();
Dim btnUp As Button = DirectCast(sender, Button)
Dim row As GridViewRow = DirectCast(btnUp.NamingContainer, GridViewRow)
' Get all items except the one selected
Dim rows = GridView1.Rows.Cast(Of GridViewRow)().Where(Function(a) a IsNot row).ToList()
Dim btnUp As Button = DirectCast(sender, Button)
Dim row As GridViewRow = DirectCast(btnUp.NamingContainer, GridViewRow)
Dim rows = GridView1.Rows.Cast(Of GridViewRow)().Where(Function(a) a <> row).ToList()