如何执行下面提到的任务(vb.net)?

How to perform the below mentioned task(vb.net)?

Dim cells = From Qmaxminslist As DataGridViewRow In DataGridView2.Rows.Cast(Of DataGridViewRow)() Take Integer.Parse(daysamaxminsmv.Text)

For Each row As DataGridViewRow In cells
   // piece of code...
Next

我在 C# 中将此代码转换为:

dynamic cells = from Qmaxminslist in DataGridView2.Rows.Cast<DataGridViewRow>() select (int.Parse(daysamaxminsmv.Text));

foreach (DataGridViewRow row in cells)
{
    // piece of code...
}

但是 foreach 语句中出现了一个异常:

"Cannot convert type 'int' to 'System.Windows.Forms.DataGridViewRow'"

如何解决? 任何帮助将不胜感激。谢谢

你没有正确转换。 VB代码选择DataGridViewRows,C#代码选择ints。你想拿 N 行。 VB.NET直接在LINQ查询中支持Enumerable.Take,C#不支持。所以我会在 C# 中使用方法语法。

所以这按预期工作(不要将 Dim 翻译成 dynamic,而是 var):

int takeRows = int.Parse(daysamaxminsmv.Text);
var rows = DataGridView2.Rows.Cast<DataGridViewRow>().Take(takeRows);

foreach (DataGridViewRow row in rows)
{
    // piece of code...
}