3 回答
TA贡献1827条经验 获得超9个赞
您可以使用扩展方法来完成这项工作:
static class Extensions
{
public static Table ToTable<T>(this IEnumerable<T> collection) where T: Row
{
Table table = new Table();
table.AddRange(collection);
return table;
}
}
现在您可以简单地调用此方法:
table = tableObject.Where(x => x.Value.Equals("")).ToTable();
或者您可以直接执行此操作,因为您创建了一个空的Table:
Table table = new Table();
table.AddRange(tableObject.Where(x => x.Value.Equals("")));
return table;
TA贡献1789条经验 获得超10个赞
我假设你tableObject是一个List<Row>. Every Tableis aList<Row>但不是every List<Row>is a Table,这就是强制转换不起作用的原因。
听起来提供构造函数将是一个明显的解决方案:
public class Table : List<Row>
{
public Table(IEnumerable<Row> rows) : base(rows) {}
}
table = new Table(tableObject.Where(x => x.Value.Equals("")));
TA贡献1796条经验 获得超10个赞
你应该这样做:
public class Row{
//whatever you have inside it
public string MyValue{get;set;}
}
public class Table{
public List<Row> Rows{get;set;}
}
Table table = new Table();
//renaming tableObject to bigListOfRows
table.Rows = bigListOfRows.Where(x => x.MyValue.Equals("")).ToList();
- 3 回答
- 0 关注
- 373 浏览
添加回答
举报