gpt4 book ai didi

c# - 具有嵌入式功能的 Linq

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

好的,这是我的问题。我正在使用来自 Salesforce API 的保存结果,并且正在学习 LINQ。在这里使用它可能不是最好的,我不知道,但这是我正在尝试做的,只是更 Eloquent 。

顺便说一句,这里是 saveresult[] 类的缩减定义:

public partial class SaveResult {

private Error[] errorsField;
private string idField;
private bool successField;

[System.Xml.Serialization.XmlElementAttribute("errors")]
public Error[] errors

[System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
public string id

public bool success
}

这就是我正在尝试做的事情。检查是否有错误,如果返回的保存结果中有错误则返回,如果没有错误则返回null。

string errors = null;
foreach (SaveResult s in saved)
{
if (s.success) continue;
else
{
foreach (Error e in s.errors)
{
errors += String.Format("Errors on object: {0}. Error Code is: {1}. Error Message: {2}",
s.id,e.statusCode.ToString(),e.message);
}
}
}

到目前为止我有:

return saved
.Select(i => i.errors
.Select(j => new { j.statusCode, j.message })
.Distinct()
.ToList()
).ToString();

我很确定在继续之前我需要一个匿名函数来评估 i 是否有错误。

总之,就是这样。感谢您的帮助(或指向我提供帮助的链接!)

最佳答案

使用查询语法:

return string.Join("",
from s in saved
where ! s.Success
from e in s.Errors
select string.Format(
"Errors on object: {0}. Error Code is: {1}. Error Message: {2}",
s.id, e.statusCode);

这在幕后被转换为 SelectMany

关于c# - 具有嵌入式功能的 Linq,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12201311/

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