LINQ to IEnumerable <myobj> </myobj>

时间:2009-11-20 15:00:06

标签: linq ienumerable

我有一个MyObj类和一个IEnumerable集合。 一些列在所有行中完全为空(即== NULL),因此我想创建一个IEnumerable&lt;&gt; MyObj的成员,其中包含非空值。

如果我可以预测MyObj的成员会感兴趣,我会做类似的事情:

var part = 
    from entry in iList  
    select new {entry.a, entry.c, entry.s};

...但我不知道MyObj的哪些成员我在设计时感兴趣 - 我只知道在运行时。

如何构建我的列表?

谢谢,

Tamim Sadikali。

3 个答案:

答案 0 :(得分:0)

你的问题没有意义。

您正在尝试创建一个仅在运行时才知道其成员的类型 你会对结果做些什么?
您将无法访问结果对象的任何属性,因为它们可能不存在。

如果要在网格中显示数据,并且不希望显示完全为空的列,则应将原始集合绑定到网格,然后隐藏网格中的某些列。 / p>

答案 1 :(得分:0)

等待发布VS2010,C#4.0,它的“动态”类型可以解决您的问题。 (或者也许可以帮助你射击自己的脚)。

答案 2 :(得分:0)

如果您正在为UI执行此操作,请更好地隐藏包含所有空值的列。对于WinForms中的DataGridView,它可能如下所示:

foreach (DataGridViewColumn column in dataGridView.Columns)
    if (dataGridView1.Rows.Cast<DataGridViewRow>().All(r => r.Cells[column.Name].Value == null))
        column.Visible = false;