[英]can not select more than one item from string array
我有 foreach 循环,在迭代之后我已经创建了 string.join 和数组,我想得到一个包含一些项目的数组,但结果我只有一个项目。 我想也许这是一个问题Select((group) => group.FirstOrDefault())
foreach (var task in this.TaskReport.RelatedTaskList
.Where((o)=> !o.ProtocolNumber.IsNullOrEmptyOrWhiteSpace())
.GroupBy((task) =>
new
{
task.ProtocolNumber,
task.CreationDate
})
.Select((group) => group.FirstOrDefault())
.OrderByDescending((task) => task.CreationDate))
{
joinedString = Translator.Instance().LocalizeString("SRV.RelatedTasks");
joinedString += relatedtasks.Replace(
"{{RelatedTaskProtocolNumberDate}}",
string.Join(
" ",
new string[]
{
task.ProtocolNumber,
task.CreationDate.ToString(DateTimeFormats.DateFormat + ", ")
}.Where((item) => !item.IsNullOrEmptyOrWhiteSpace())
)
);
}
你为什么把这么长的linq
放在 foreach 循环中? 创建一个外部变量并将其传递给循环,代码会非常干净。
它有什么作用?
new
{
task.ProtocolNumber,
task.CreationDate
})
查看GroupBy
示例并使您的 function 正确: https://docs.microsoft.com/en-us/dotnet/api/system.linq-groupview.enum?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.