gpt4 book ai didi

c# - Lambda 表达式 C# Union Where

转载 作者:行者123 更新时间:2023-12-05 08:20:55 27 4
gpt4 key购买 nike

我有类的对象

public class Person
{
public string Error { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}

有些有错误(没有名字和年龄)有些没有错误(没有名字和年龄)

Person[] p1 = new Person[] { new Person { Error = "Error1" }, new Person { Name = "Name1", Age = 1 } };



Person[] p2 = p1
.Where(c => string.IsNullOrEmpty(c.Error))
.Select(
c => new Person { Name = c.Name, Age = c.Age }
).ToArray()
Union()
.Where(d => !string.IsNullOrEmpty(d.Error))
.Select(
d => new Person { Error = d.Error }
).ToArray()

我需要创建第二个数组 p2,在这里我可以从 p1 中选择所有有错误的人对象,并合并来自同一个 p1 的所有没有错误的人。

我需要类似上面代码的东西,但它不起作用。我怎样才能把它写在一个 lambda 子句中?

非常感谢?

最佳答案

p1.Where(c => string.IsNullOrEmpty(c.Error))
.Union(p1.Where(d => !string.IsNullOrEmpty(d.Error)))
.ToArray()

您需要在 .Union 中添加第二个 IEnumerable。无需再次投影,因为对象已经是您需要的类型。

虽然在这种情况下有点没有实际意义,但结果与 p1

相同

关于c# - Lambda 表达式 C# Union Where,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32787721/

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