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;
如何解决? 任何帮助将不胜感激。感谢
答案 0 :(得分:0)
您尚未正确转换。 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...
}