我无法用以下代码填充数据网格:
var y = valores.Where(c => c % 2 == 0);
dataGridView1.DataSource = y.ToList();
但这可行:
var x = from valor in valores
where (valor % 2 == 0)
select new
{
valor
};
dataGridView1.DataSource = x.ToList();
答案 0 :(得分:1)
我无法填充数据网格
显然,您的意思是您的dataGridView1
未显示该列表。
我转载了您的问题,并针对某些类型进行了实验。看起来原因是当列表包含无属性的对象时,DataGridView
不会绑定到列表。例如,在您的第一个代码段中,Linq表达式返回一个整数列表,即System.Int32
。而且,如果您使用对象浏览器查看此值类型的定义,那么您会发现它未声明任何公共属性。
例如以下代码“也不起作用”
var x = from valor in valores
where (valor % 2 == 0)
select new
{
};
dataGridView1.DataSource = x.ToList();
也就是说,我正在创建具有没有属性的匿名类型的对象。
像System.Int32
的{{1}}或System.Double
的列表也不起作用。
与System.Decimal
不同的是System.Int32
的列表有效,因为System.DateTime
具有属性。
因此,我的结论是,如果类型不包含任何属性,则该类型的实例列表将不会绑定到DateTime
。
答案 1 :(得分:1)