回答編集履歴

1

見直しキャンペーン中

2023/07/29 06:51

投稿

TN8001
TN8001

スコア9862

test CHANGED
@@ -1,97 +1,49 @@
1
1
  ジェネリックメソッドにして型制約します。
2
-
3
2
  [ジェネリック メソッド - C# プログラミング ガイド | Microsoft Docs](https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/generics/generic-methods)
4
3
 
5
-
6
-
7
- ```C#
4
+ ```cs
8
-
9
5
  using System;
10
-
11
6
  using System.Linq;
12
-
13
7
  using System.Collections.ObjectModel;
14
8
 
15
-
16
-
17
9
  namespace Questions362491
18
-
19
10
  {
20
-
21
11
  class Program
22
-
23
12
  {
24
-
25
13
  static void Main()
26
-
27
14
  {
28
-
29
15
  var tests = new ObservableCollection<Test>
30
-
31
16
  {
32
-
33
17
  new Test(),
34
-
35
18
  new Test(),
36
-
37
19
  new Test(),
38
-
39
20
  };
40
21
 
41
-
42
-
43
22
  tests.ExportToCSV();
44
-
45
23
  }
46
-
47
24
  }
48
25
 
49
-
50
-
51
26
  static class ExObservableCollection
52
-
53
27
  {
54
-
55
28
  public static void ExportToCSV<T>(this ObservableCollection<T> Entities) where T : IConvertCSV
56
-
57
29
  {
58
-
59
30
  var csv = string.Join("\r\n", Entities.Select(x => x.ToCSV()));
60
-
61
31
  Console.WriteLine(csv);
62
-
63
32
  }
64
-
65
33
  }
66
34
 
67
-
68
-
69
35
  interface IConvertCSV
70
-
71
36
  {
72
-
73
37
  string ToCSV();
74
-
75
38
  }
76
39
 
77
-
78
-
79
40
  sealed class Test : IConvertCSV
80
-
81
41
  {
82
-
83
42
  public string ToCSV() => "Test";
84
-
85
43
  }
86
-
87
44
  }
88
-
89
45
  ```
90
-
91
-
92
46
 
93
47
  ---
94
48
 
95
-
96
-
97
49
  `ObservableCollection`に限定する必要もなさそうですが。