gpt4 book ai didi

c# - 如何将两个 LINQ 表达式中的 .Select 合并为一个?

转载 作者:行者123 更新时间:2023-11-30 13:48:36 25 4
gpt4 key购买 nike

我有以下代码片段。

protected IEnumerable<string> GetErrorsFromModelState()
{
var errors = ModelState.SelectMany(x => x.Value.Errors
.Select(error => error.ErrorMessage));
return errors;
}

protected IEnumerable<string> GetErrorsFromModelState()
{
var exceptions = ModelState.SelectMany(x => x.Value.Errors
.Select(error => error.Exception));
return exceptions;
}

有没有一种方法可以将这两者结合起来,以便 GetErrorsFromModelState 返回所有 ErrorMessage 和 Exception 值?

最佳答案

你可以使用Union

protected IEnumerable<string> GetErrorsFromModelState()
{
var exceptions = ModelState.SelectMany(x => x.Value.Errors
.Select(error => error.Exception));

var errors = ModelState.SelectMany(x => x.Value.Errors
.Select(error => error.ErrorMessage));

return exceptions.Union(errors);
}

或者您可以将它们选为一个集合

protected IEnumerable<string> GetErrorsFromModelState()
{
var items = ModelState.SelectMany(x => x.Value.Errors
.SelectMany(error =>
{
var e = new List<string>();
e.Add(error.Exception);
e.Add(error.ErrorString);
return e;
}));

return items;
}

关于c# - 如何将两个 LINQ 表达式中的 .Select 合并为一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12128551/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com