我有一个对象列表。我的课程如下所示:
class Line
{
public string A { get; set; }
public object B { get; set; }
public string C { get; set; }
}
class More_B
{
public Information Information { get { return _Information; }}
public Description Description { get { return _Description ; }}
private Information _Information = new Information();
private Description _Description = new Description ();
}
class Information
{
public string Name { get; set;}
public string Type { get; set;}
public string Further_Info { get; set;}
}
最后在我的主课中,我得到了Line
像这样的类内的所有数据。
More_B info = new More_B();
Line main = new Line();
main.A = "Information about device";
main.B = info;
main.C = "Some more information could be display here";
list3.Add(main);
所以最后我得到了列表,里面有所有 3 个字段A
B
C
。当我在调试模式下检查时,我有我的字符串值,A
我有 Information 对象,在其中我有所有字段,如and 。C
B
Name
Type
Further_Info
我稍后想根据这些值“名称”“类型”和“Further_Info”过滤此列,我尝试过这种方式,但它不起作用。(我将我的列表绑定到 DataView 以便能够使用 RowFilter)。
view2.RowFilter = "Line like '%" + textBox2.Text + "%'";
我怎样才能做到正确?
我是 C# 的新手,所以如果我做错了什么,请原谅我。如果有些东西难以理解,请告诉我,我会尝试发布更多代码来解释我所做的事情。
编辑:当我使用这个语句时view2.RowFilter = "Line like '%" + textBox2.Text + "%'";
,我得到了错误Cannot perform 'Like' operation on read_display.More_B and System.String.
EDIT2:我还有 2 种方法可以为我的班级创建数据表,然后我这样做:DataTable ListAsDataTable2 = BuildDataTable2<Line>(list3); DataView ListAsDataView2 = ListAsDataTable2.DefaultView; this.dataGridView4.DataSource = view2 = ListAsDataView2;