我有两节课:
public class Row : Dictionary<string,string> {}
public class Table : List<Row> {}
Run Code Online (Sandbox Code Playgroud)
在应该返回Table类型的对象的方法中,我尝试使用Where -Statement过滤Table类型的对象,并在过滤后返回此对象.
Table table = new Table();
table = tableObject.Where(x => x.Value.Equals("")).ToList();
return table;
Run Code Online (Sandbox Code Playgroud)
我的问题是生成的IEnumerable的演员表.
附加信息:无法将'System.Collections.Generic.List`1 [Row]'类型的对象强制转换为'Table'类型.
如何从IEnumerable中返回Table类型的对象?
你可以使用扩展方法来完成这项工作:
static class Extensions
{
public static Table ToTable<T>(this IEnumerable<T> collection) where T: Row
{
Table table = new Table();
table.AddRange(collection);
return table;
}
}
Run Code Online (Sandbox Code Playgroud)
现在您可以简单地调用此方法:
table = tableObject.Where(x => x.Value.Equals("")).ToTable();
Run Code Online (Sandbox Code Playgroud)
或者你可以直接创建,因为你创建一个空的Table:
Table table = new Table();
table.AddRange(tableObject.Where(x => x.Value.Equals("")));
return table;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
110 次 |
| 最近记录: |