回答編集履歴

1

.NET 5未満でも実行できるように変更

2021/05/26 16:11

投稿

takezoux2
takezoux2

スコア3

test CHANGED
@@ -1,4 +1,4 @@
1
- LINQを使って次のようにスッキリに出来るかと思います。.NET5.0にする必要があります。
1
+ LINQを使って次のようにスッキリに出来るかと思います。
2
2
 
3
3
 
4
4
 
@@ -10,7 +10,7 @@
10
10
 
11
11
  using System.Collections.Generic;
12
12
 
13
-
13
+
14
14
 
15
15
  public class Program
16
16
 
@@ -22,15 +22,15 @@
22
22
 
23
23
  var array1 = new string[,]{ {"a","1"}, {"b", "2"}};
24
24
 
25
- var array2 = new string[,]{ {"a","1"}, {"b", "2"}};
25
+ var array2 = new string[,]{ {"a","3"}, {"c", "3"}};
26
26
 
27
-
27
+
28
28
 
29
29
  foreach(var t in Program.ToTuples(array1).Concat(Program.ToTuples(array2))
30
30
 
31
31
  .GroupBy(row => row.Item1)
32
32
 
33
- .Select(t => (t.Key, t.Sum(row => row.Item2))) ) {
33
+ .Select(t => Tuple.Create(t.Key, t.Sum(row => row.Item2))) ) {
34
34
 
35
35
  Console.WriteLine(t.Item1 + " " + t.Item2);
36
36
 
@@ -38,17 +38,17 @@
38
38
 
39
39
  }
40
40
 
41
- static IEnumerable<(string, int)> ToTuples(string[,] array) {
41
+ static IEnumerable<Tuple<string, int>>ToTuples(string[,] array) {
42
42
 
43
43
  for (int i=0; i < array.GetLength(0); i++) {
44
44
 
45
- yield return (array[i,0], int.Parse(array[i,1]));
45
+ yield return Tuple.Create(array[i,0], int.Parse(array[i,1]));
46
46
 
47
47
  }
48
48
 
49
49
  }
50
50
 
51
-
51
+
52
52
 
53
53
  }
54
54