teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

5

修正

2021/09/10 11:44

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -3,15 +3,19 @@
3
3
 
4
4
  どなたかご教授お願いします。
5
5
 
6
+ 9/10 20:42 コード修正しました。
6
7
  ```C#
8
+ using System.Collections.Generic;
9
+ using System.Linq;
10
+
7
- public class Base() {
11
+ public class Base {
8
12
  public long Id { get; set; }
9
13
  public string Name { get; set; }
10
14
 
11
15
  public virtual IList<Sub> Subs { get; set; }
12
16
  }
13
17
 
14
- public class Sub() {
18
+ public class Sub {
15
19
  public long Id { get; set; }
16
20
  public string Name { get; set; }
17
21
  public long BaseId { get; set; }
@@ -19,17 +23,19 @@
19
23
  public virtual Base Base { get; set; }
20
24
  }
21
25
 
22
- public void Test() {
26
+ public class Test {
27
+ public static void Main() {
23
- IList<Base> bases = new List<Base>() {
28
+ IList<Base> bases = new List<Base>() {
24
- new Base() { Id = 1, Name = "a", Subs = null },
29
+ new Base() { Id = 1, Name = "a", Subs = null },
25
- new Base() { Id = 2, Name = "b", Subs = null }
30
+ new Base() { Id = 2, Name = "b", Subs = null }
26
- };
31
+ };
27
32
 
28
- // 平坦化するデータがない時はnullを返したい。
33
+ // 平坦化するデータがない時はnullを返したい。
29
- IList<Base> bases2 = bases
34
+ var bases2 = bases
30
- .SelectMany(e => e.Subs.DefaultIfEmpty(), (e, e2) => e.Subs != null ? new Base() {
35
+ .SelectMany(e => e.Subs.DefaultIfEmpty(), (e, e2) => e.Subs != null ? new {
31
- Id = e.Id,
36
+ Id = e.Id,
32
- SubName = e2.Name
37
+ SubName = e2.Name
33
- } : null);
38
+ } : null);
39
+ }
34
40
  }
35
41
  ```

4

2021/09/10 11:44

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -20,7 +20,7 @@
20
20
  }
21
21
 
22
22
  public void Test() {
23
- IList<Base> = new List<Base>() {
23
+ IList<Base> bases = new List<Base>() {
24
24
  new Base() { Id = 1, Name = "a", Subs = null },
25
25
  new Base() { Id = 2, Name = "b", Subs = null }
26
26
  };

3

修正

2021/09/10 11:03

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -8,13 +8,15 @@
8
8
  public long Id { get; set; }
9
9
  public string Name { get; set; }
10
10
 
11
- public IList<Sub> Subs { get; set; }
11
+ public virtual IList<Sub> Subs { get; set; }
12
12
  }
13
13
 
14
14
  public class Sub() {
15
15
  public long Id { get; set; }
16
16
  public string Name { get; set; }
17
17
  public long BaseId { get; set; }
18
+
19
+ public virtual Base Base { get; set; }
18
20
  }
19
21
 
20
22
  public void Test() {

2

修正

2021/09/10 09:45

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -20,7 +20,7 @@
20
20
  public void Test() {
21
21
  IList<Base> = new List<Base>() {
22
22
  new Base() { Id = 1, Name = "a", Subs = null },
23
- new Base() { Id = 2, Name = "b", Subs = null },
23
+ new Base() { Id = 2, Name = "b", Subs = null }
24
24
  };
25
25
 
26
26
  // 平坦化するデータがない時はnullを返したい。

1

修正

2021/09/10 09:45

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -27,7 +27,7 @@
27
27
  IList<Base> bases2 = bases
28
28
  .SelectMany(e => e.Subs.DefaultIfEmpty(), (e, e2) => e.Subs != null ? new Base() {
29
29
  Id = e.Id,
30
- SubName = e2.SubName
30
+ SubName = e2.Name
31
31
  } : null);
32
32
  }
33
33
  ```