【发布时间】:2019-09-11 18:16:51
【问题描述】:
我有一个 IEnumerable,我想使用 linq 语句来序列化 IEnumerable 中的每个对象并返回另一个列表。这是我的 foreach:
List<EventData> payloads = new List<EventData>();
foreach (var request in requestList)
{
string message = JsonConvert.SerializeObject(request);
EventData data = new EventData(Encoding.UTF8.GetBytes(message));
payloads.Add(data);
}
我正在尝试执行这样的 Select 语句:
requestList.Select(request => { JsonConvert.SerializeObject(request); });
错误信息是:
无法从用法中推断方法“Enumerable.Select
(IEnumerable, Func )”的类型参数。尝试明确指定类型参数
【问题讨论】:
-
我收到一条错误消息:
The type arguments for method 'Enumerable.Select<TSource, TResult>(IEnumerable<TSource>, Func<TSource, TResult>)' cannot be inferred from the usage. Try specifying the type arguments explicitly -
var list = requestList.Select(request => new EventData(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(request)))).ToList(); -
问题是大括号意味着你有一个方法体,但你没有从中返回任何东西。
-
requestList是什么类型? -
旁注:通常集合类型的变量以它们所包含的类型的复数形式命名,因此如果
requestList是List<Request>,它会简单地命名为requests。跨度>