Personオブジェクトがあります:
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public string Address { get; set; }
public double Height { get; set; }
public bool IsTest { get; set; }
}
Person
次に、さまざまなオブジェクトで満たされたリストがあります。
オブジェクトのプロパティに応じて、LINQでGroupByで三項演算子を使用する方法があるかどうかを知りたいです。例えば:
var groupedPersons = persons.GroupBy(person => person.IsTest ?
new {
person.Name,
person.Age,
person.Address
}
: new {
person.Name,
person.Age,
person.Address,
person.Height}).ToList();
しかし、残念ながらそれは機能しません、私に例外を与えます
'AnonymousType#1'と'AnonymousType#2'の間に暗黙の変換がないため、条件式のタイプを判別できません。
これはまったく達成可能ですか、そしてどのようにですか?
ありがとう
編集:これを試しましたが、機能していません。
var groupedPersons = persons.GroupBy(person => person.OnTest ?
new Person {
Address = person.Address,
Name = person.Name,
Age = person.Age }
: new Person {
Address= person.Address,
Name = person.Name,
Age = person.Age ,
Height = person.Height}).ToList();
編集:それが機能するようになりました、私の答えを見てください