我有类的对象
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子句中呢?
非常感谢?
3条答案
按热度按时间fbcarpbf1#
您需要在
.Union
中添加第二个IEnumerable
,并且不需要再次投影,因为对象已经是您需要的类型。尽管在本例中没有实际意义,但结果与
p1
相同fykwrbwg2#
好吧,我自己找到了解决办法,应该是这样的:
对不起,可能我的回答不是很清楚。谢谢大家的回复。
5fjcxozz3#
这将避免出现以下情况:有错误但姓名和年龄有值,或者没有错误但姓名和年龄没有值。
单独:
合并: