質問編集履歴
4
誤字の訂正
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
インデックス付きEnumerable.Selectメソッドでラムダ式がタプルを返すときにエラーとなる理由をしりたい。
|
1
|
+
インデックス付きEnumerable.Selectメソッドで匿名メソッド(ラムダ式)がタプルを返すときにエラーとなる理由をしりたい。
|
body
CHANGED
File without changes
|
3
書式の改善
title
CHANGED
File without changes
|
body
CHANGED
@@ -3,10 +3,12 @@
|
|
3
3
|
|
4
4
|
[問題リンクB - Palace](https://atcoder.jp/contests/abc113/tasks/abc113_b)
|
5
5
|
|
6
|
+
Ⅰ
|
6
|
-
|
7
|
+
以下のコードを書いたときに、エラーとなる理由を知りたい。
|
7
|
-
|
8
|
+
②、③のコードではなぜいけるのか知りたい。
|
8
9
|
|
10
|
+
Ⅱ
|
9
|
-
|
11
|
+
④のコードのときエラーとなる理由を知りたい。
|
10
12
|
Enumerable.Minメソッドは、Minメソッドをかける配列の内容の型がIComparableを実装しなければならない。
|
11
13
|
というのはわかる。
|
12
14
|
a,匿名型にはIComparableを実装できない?
|
2
追加情報(コンソールへの入力例)、コメント入力してコードを見やすくしました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -13,6 +13,23 @@
|
|
13
13
|
b,タプル型のIComparableのCompareToメソッドの実装はどこで見れますか?(どういうルールで比較するの知りたい)
|
14
14
|
|
15
15
|
|
16
|
+
|
17
|
+
(↓↓↓追加情報↓↓↓)
|
18
|
+
問題文は以下のリンクにあります
|
19
|
+
[問題リンクB - Palace](https://atcoder.jp/contests/abc113/tasks/abc113_b)
|
20
|
+
|
21
|
+
コンソールへの入力例1
|
22
|
+
2
|
23
|
+
12 5
|
24
|
+
1000 2000
|
25
|
+
|
26
|
+
コンソールへの入力例2
|
27
|
+
3
|
28
|
+
21 -11
|
29
|
+
81234 94124 52141
|
30
|
+
|
31
|
+
|
32
|
+
|
16
33
|
ご回答、ご教授宜しくお願いいたします。。。。!!!
|
17
34
|
|
18
35
|
|
@@ -50,21 +67,24 @@
|
|
50
67
|
|
51
68
|
int[] elevations = Console.ReadLine().Split(' ').Select(int.Parse).ToArray();
|
52
69
|
|
53
|
-
//ダメ①
|
70
|
+
//ダメ① index+1
|
54
|
-
var res = elevations.Select(x => t - x * 0.006).Select(( double num, int index ) => (Math.Abs(num - a), index+1)).Min(x => x).index;
|
71
|
+
//var res = elevations.Select(x => t - x * 0.006).Select(( double num, int index ) => (Math.Abs(num - a), index+1)).Min(x => x).index;
|
55
72
|
|
73
|
+
//OK② indexそのまま
|
56
|
-
|
74
|
+
var res = elevations.Select(x => t - x * 0.006).Select(( double num, int index ) => (Math.Abs(num - a), index)).Min(x => x).index;
|
57
75
|
|
76
|
+
//OK③ Item2を使う。
|
58
|
-
//
|
77
|
+
//var res = elevations.Select(x => t - x * 0.006).Select(( double num, int index ) => (Math.Abs(num - a), index = index + 1)).Min(x => x).Item2;
|
59
78
|
//var res = elevations.Select(x => t - x * 0.006).ToArray().Select(( s, index ) => new Tuple<double, int>(Math.Abs(s - a), index + 1)).Min(d => d).Item2;
|
60
79
|
|
80
|
+
//ダメ④ 匿名型
|
61
|
-
//
|
81
|
+
//var res = elevations.Select(x => t - x * 0.006).Select(( double num, int index ) =>new { Diff = Math.Abs(num - a), Index = index }).Min(x => x).Index;
|
62
82
|
|
63
|
-
//var res2 = elevations.Select(( x, i ) => (Math.Abs(t - x * 0.006 - a), i)).Min(x => x).i;
|
64
83
|
Console.WriteLine(res + 1);
|
65
84
|
}
|
66
85
|
}
|
67
86
|
}
|
87
|
+
|
68
88
|
```
|
69
89
|
|
70
90
|
### 試したこと
|
1
誤字の訂正
title
CHANGED
File without changes
|
body
CHANGED
@@ -10,7 +10,10 @@
|
|
10
10
|
Enumerable.Minメソッドは、Minメソッドをかける配列の内容の型がIComparableを実装しなければならない。
|
11
11
|
というのはわかる。
|
12
12
|
a,匿名型にはIComparableを実装できない?
|
13
|
-
b,タプル型のIComparableのCompareToメソッドの実装はどこで見れ
|
13
|
+
b,タプル型のIComparableのCompareToメソッドの実装はどこで見れますか?(どういうルールで比較するの知りたい)
|
14
|
+
|
15
|
+
|
16
|
+
ご回答、ご教授宜しくお願いいたします。。。。!!!
|
14
17
|
|
15
18
|
|
16
19
|
### 発生している問題・エラーメッセージ
|