筛选包含对象的 DataTable
Filtering DataTable that contains objects
之前我有一个 DataTable
填充了 string
值。
我使用 Select
方法过滤数据,效果很好。
DataRow[] drs = dataTable.Select("[" + dataTable.Columns[columnIndex].ColumnName + "] LIKE '%" + filter + "%'");
一段时间后,DataTable
中的 string
值必须更改为 Cell
对象,这是自制的 class 对象,其中包含旧值和一些其他值属性。
public class Cell
{
public object Value { get; set; } /*This is the old string value*/
public bool Property1 { get; set; }
public int Property2 { get; set; }
public string Property3 { get; set; }
}
我意识到我的过滤功能不再起作用了。
任何人都知道我应该如何处理我的 DataTable
的过滤,它现在包含 Cell
个对象而不是 strings
?
感谢 kanchirks 的评论,我想到了这个解决方案。
EnumerableRowCollection erc = dataTable.AsEnumerable().Where(dr => ((Cell)dr[columnIndex]).Value.ToString().ToLower().Contains(filter.ToLower()));
之前我有一个 DataTable
填充了 string
值。
我使用 Select
方法过滤数据,效果很好。
DataRow[] drs = dataTable.Select("[" + dataTable.Columns[columnIndex].ColumnName + "] LIKE '%" + filter + "%'");
一段时间后,DataTable
中的 string
值必须更改为 Cell
对象,这是自制的 class 对象,其中包含旧值和一些其他值属性。
public class Cell
{
public object Value { get; set; } /*This is the old string value*/
public bool Property1 { get; set; }
public int Property2 { get; set; }
public string Property3 { get; set; }
}
我意识到我的过滤功能不再起作用了。
任何人都知道我应该如何处理我的 DataTable
的过滤,它现在包含 Cell
个对象而不是 strings
?
感谢 kanchirks 的评论,我想到了这个解决方案。
EnumerableRowCollection erc = dataTable.AsEnumerable().Where(dr => ((Cell)dr[columnIndex]).Value.ToString().ToLower().Contains(filter.ToLower()));