質問編集履歴

4

誤字の訂正

2021/05/11 02:09

投稿

teracot
teracot

スコア1

test CHANGED
@@ -1 +1 @@
1
- インデックス付きEnumerable.Selectメソッドでラムダ式がタプルを返すときにエラーとなる理由をしりたい。
1
+ インデックス付きEnumerable.Selectメソッドで匿名メソッド(ラムダ式)がタプルを返すときにエラーとなる理由をしりたい。
test CHANGED
File without changes

3

書式の改善

2021/05/11 02:09

投稿

teracot
teracot

スコア1

test CHANGED
File without changes
test CHANGED
@@ -8,13 +8,17 @@
8
8
 
9
9
 
10
10
 
11
- 以下のコードを書いたときに、エラーとなる理由を知りたい。
11
+
12
12
 
13
+ 以下のコードを書いたときに、エラーとなる理由を知りたい。
14
+
13
-   ②、③のコードではなぜいけるのか知りたい。
15
+ ②、③のコードではなぜいけるのか知りたい。
14
16
 
15
17
 
16
18
 
19
+
20
+
17
- ④のコードのときエラーとなる理由を知りたい。
21
+ ④のコードのときエラーとなる理由を知りたい。
18
22
 
19
23
  Enumerable.Minメソッドは、Minメソッドをかける配列の内容の型がIComparableを実装しなければならない。
20
24
 

2

追加情報(コンソールへの入力例)、コメント入力してコードを見やすくしました。

2021/05/11 01:07

投稿

teracot
teracot

スコア1

test CHANGED
File without changes
test CHANGED
@@ -23,6 +23,40 @@
23
23
   a,匿名型にはIComparableを実装できない?
24
24
 
25
25
   b,タプル型のIComparableのCompareToメソッドの実装はどこで見れますか?(どういうルールで比較するの知りたい)
26
+
27
+
28
+
29
+
30
+
31
+
32
+
33
+ (↓↓↓追加情報↓↓↓)
34
+
35
+ 問題文は以下のリンクにあります
36
+
37
+ [問題リンクB - Palace](https://atcoder.jp/contests/abc113/tasks/abc113_b)
38
+
39
+
40
+
41
+ コンソールへの入力例1
42
+
43
+ 2
44
+
45
+ 12 5
46
+
47
+ 1000 2000
48
+
49
+
50
+
51
+ コンソールへの入力例2
52
+
53
+ 3
54
+
55
+ 21 -11
56
+
57
+ 81234 94124 52141
58
+
59
+
26
60
 
27
61
 
28
62
 
@@ -102,27 +136,31 @@
102
136
 
103
137
 
104
138
 
105
- //ダメ①---最後のConsole.WriteLineでres+1ではなくresでいけるようにindex+1しようとしたらエラーしました。
139
+ //ダメ① index+1
106
140
 
107
- var res = elevations.Select(x => t - x * 0.006).Select(( double num, int index ) => (Math.Abs(num - a), index+1)).Min(x => x).index;
141
+ //var res = elevations.Select(x => t - x * 0.006).Select(( double num, int index ) => (Math.Abs(num - a), index+1)).Min(x => x).index;
108
142
 
109
143
 
110
144
 
145
+ //OK② indexそのまま
146
+
111
- //OK②var res = elevations.Select(x => t - x * 0.006).Select(( double num, int index ) => (Math.Abs(num - a), index)).Min(x => x).index;
147
+ var res = elevations.Select(x => t - x * 0.006).Select(( double num, int index ) => (Math.Abs(num - a), index)).Min(x => x).index;
112
148
 
113
149
 
114
150
 
151
+ //OK③ Item2を使う。
152
+
115
- //OK③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;
153
+ //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;
116
154
 
117
155
  //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;
118
156
 
119
157
 
120
158
 
159
+ //ダメ④ 匿名型
160
+
121
- //ダメ④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;
161
+ //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;
122
162
 
123
163
 
124
-
125
- //var res2 = elevations.Select(( x, i ) => (Math.Abs(t - x * 0.006 - a), i)).Min(x => x).i;
126
164
 
127
165
  Console.WriteLine(res + 1);
128
166
 
@@ -131,6 +169,8 @@
131
169
  }
132
170
 
133
171
  }
172
+
173
+
134
174
 
135
175
  ```
136
176
 

1

誤字の訂正

2021/05/11 01:02

投稿

teracot
teracot

スコア1

test CHANGED
File without changes
test CHANGED
@@ -22,7 +22,13 @@
22
22
 
23
23
   a,匿名型にはIComparableを実装できない?
24
24
 
25
-  b,タプル型のIComparableのCompareToメソッドの実装はどこで見れる。(どういうルールで比較するの知りたい)
25
+  b,タプル型のIComparableのCompareToメソッドの実装はどこで見れますか?(どういうルールで比較するの知りたい)
26
+
27
+
28
+
29
+
30
+
31
+ ご回答、ご教授宜しくお願いいたします。。。。!!!
26
32
 
27
33
 
28
34