エラーが出てできなかった。
成果物
コード
class Person { public string Name { get; set; } public int GenerateId { get; set; } } class Pet { public string Name { get; set; } // public Person Owner { get; set; } public string OwnerName { get; set; } public int GenerateId { get; set; } } class Main { private List<Person> persons; private List<Pet> pets; public void Run() { persons = CreatePersons(); pets = CreatePets(); Show(Query()); } private List<Person> CreatePersons() { return new List<Person>() { new Person { Name="A", GenerateId=1 }, new Person { Name="A", GenerateId=2 }, new Person { Name="B", GenerateId=1 }, new Person { Name="C", GenerateId=1 }, }; } private List<Pet> CreatePets() { return new List<Pet>() { new Pet { Name="a", OwnerName=persons[0].Name, GenerateId=1 }, new Pet { Name="b", OwnerName=persons[0].Name, GenerateId=1 }, new Pet { Name="c", OwnerName=persons[1].Name, GenerateId=1 }, new Pet { Name="d", OwnerName=persons[0].Name, GenerateId=2 }, new Pet { Name="z", OwnerName=null, GenerateId=1 }, }; } private IEnumerable<dynamic> Query() { return from person in persons join pet in pets on new {person.Name, person.GenerateId} equals new {pet.OwnerName, pet.GenerateId} into gj // join pet in pets on new {Name=person.Name, GenId=person.GenerateId} equals new {Name=pet.OwnerName, GenId=pet.GenerateId} into gj from pet in gj select new { person.Name, person.GenerateId, PetName=pet.Name // pet.GenId, // PetName=pet.Name, }; } private void Show(in IEnumerable<dynamic> query) { foreach (var item in query) { Console.WriteLine($"Person.Name={item.Name}, GenId={item.GenId}, PetName={item.PetName}"); } } }
lesson0/Main.cs(45,21): error CS1941: The type of one of the expressions in the join clause is incorrect. Type inference failed in the call to 'GroupJoin'.
以下の行にて、型が一致していないとか言っているっぽい。一致していると思うのだが? 謎。解決できなかった。
join pet in pets on new {person.Name, person.GenerateId} equals new {pet.OwnerName, pet.GenerateId} into gj
所感
できるまでやりたかったけど、わからんかったので飛ばす。
対象環境
- Raspbierry pi 3 Model B+
- Raspbian stretch 9.0 2018-11-13
- bash 5.0.3(1)-release
$ uname -a Linux raspberrypi 4.19.75-v7l+ #1270 SMP Tue Sep 24 18:51:41 BST 2019 armv7l GNU/Linux