【发布时间】:2017-08-03 08:18:31
【问题描述】:
我对 var 关键字在 DataGridViewSelectedRowCollection 上的 foreach 循环中无法正常工作的原因很感兴趣。
ex1:
var selectedRows = MyDataGridView.SelectedRows;
foreach (var row in selectedRows)
{
var foo = row.DataBoundItem;
_bindingSource.Remove(foo);
}
ex1 “行”的类型是对象。 为什么它不是'DataGridViewRow'类型
ex2 完美运行:
var selectedRows = MyDataGridView.SelectedRows;
foreach (DataGridViewRow row in selectedRows)
{
var foo = row.DataBoundItem;
_bindingSource.Remove(foo);
}
如果我直接访问集合的项目,它也可以工作:
var selectedRows = MyDataGridView.SelectedRows;
var foo = selectedRows[0];
var bar = foo.GetType().Name; // bar == DataGridViewRow
我对发生这种情况的原因很感兴趣。
提前致谢
【问题讨论】:
-
你试过在ex2中做
selectedRows[0].DataBoundItem;吗?因为它不是一个“公平”的比较 atm :)
标签: c# winforms collections var