有没有办法从lambda表达式中调用函数?
我们目前有以下内容
var obj = m.Select(x => x.ToDictionary(y => y.ColumnName, y => y.ColumnValue))
.ToList();
private static string BuildNewContent(EnumColumnType columnType, String columnValue, List<TableColumn> CurrentRow)
{
}
Run Code Online (Sandbox Code Playgroud)
所以我们真正想做的是将BuildNewContent的返回值作为字典的值添加.如下所示: -
var obj = m.Select(x => x.ToDictionary(y => y.ColumnName, BuildNewContent(y => y.ColumnType, y=> y.ContentValue, y)))
.ToList();
Run Code Online (Sandbox Code Playgroud)
我意识到我们可以通过简单的循环轻松实现这一点,但是,我们希望看到如何使用Lambda(如果可能的话)
更新 - 根据要求,M的类型是TableViewModel,它是一个嵌套列表
public class TableViewModel
{
public List<List<TableColumn>> Grid { get; set; }
}
public class TableColumn
{
public TableColumn() { }
public TableColumn(string columnHeader, string columnValue, int columnWidth, EnumColumnType columnType, string columnName)
{
this.ColumnHeader = columnHeader;
this.ColumnValue = columnValue;
this.ColumnWidth = columnWidth;
this.ColumnType = columnType;
this.ColumnName = columnName;
}
public string ColumnHeader { get; set; }
public string ColumnName { get; set; }
public string ColumnValue { get; set; }
public int ColumnWidth { get; set; }
public EnumColumnType ColumnType { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
你几乎是对的
var obj = m.Select(x => x.ToDictionary(
y => y.ColumnName, y => BuildNewContent(y.ColumnType, y.ContentValue, y))).ToList();
Run Code Online (Sandbox Code Playgroud)
但我怀疑不是y
你要提供的最后一个参数x
或其他值,因为y
可能不是类型List<TableColumn>
归档时间: |
|
查看次数: |
116 次 |
最近记录: |