【发布时间】:2015-12-16 21:23:20
【问题描述】:
当我尝试编译我的代码时出现以下错误:
方法的类型参数 'System.Linq.Enumerable.SelectMany(System.Collections.Generic.IEnumerable, System.Func>)' 不能从用法中推断出来。尝试指定类型参数 明确的。
List<RowEntry> entries = ...
List<RowArgument> arguments = ...
var argumentsVal = entries.SelectMany((RowEntry entry) =>
(IEnumerable<RowArgumentVal>)arguments.SelectMany((RowArgument arg) =>
new RowArgumentVal()
{
Action = "X"
, EntryID = entry.ID
, ArgID = arg.ID
, Val_BIT = true
, Val_DATE = new DateTime(2014, 01, 04)
, Val_DATETIME = new DateTime(2014, 01, 04)
, Val_DECIMAL = 4.6M
, Val_INT = 88
, Val_TIME = new TimeSpan(6, 0, 0)
}
).Cast<RowArgumentVal>()).Cast<RowArgumentVal>().ToList();
我不明白如何进一步“输入”这个......
【问题讨论】:
-
SelectMany旨在获取RowEntry实例中的子实体列表,而您似乎正在尝试做笛卡尔积? -
确实是笛卡尔积。
-
把内部的
SelectMany变成一个简单的Select -
只使用
Select而不是SelectMany?