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

时间:2015-03-18 13:32:25

标签: c# vb.net linq-to-objects

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声明中有一个例外:

  

&#34;无法转换类型&#39; int&#39;到&#39; System.Windows.Forms.DataGridViewRow&#39;&#34;

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

1 个答案:

答案 0 :(得分:0)

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

所以这可以按照需要运行(不要将Dimdynamicvar进行翻译):

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

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