回答編集履歴

1

追記

2018/10/23 09:23

投稿

shakevo
shakevo

スコア453

test CHANGED
@@ -226,124 +226,154 @@
226
226
 
227
227
   
228
228
 
229
+
230
+
231
+
232
+
233
+ ・ 
234
+
235
+
236
+
237
+
238
+
239
+ 以下メソッドから値を取得しています。
240
+
241
+ 上から、
242
+
243
+
244
+
245
+ ・指定したIDに合致するインデックスからabcを取得する
246
+
247
+ ・指定したIDに合致するインデックス - 1からabcを取得する
248
+
249
+ ・指定したIDに合致するインデックス + 1からabcを取得する
250
+
251
+
252
+
253
+ これで1つ前、1つ後も取得できます。
254
+
255
+
256
+
257
+
258
+
259
+ ```C#
260
+
261
+ /// <summary>
262
+
263
+ /// 指定Idのabcを返す
264
+
265
+ /// </summary>
266
+
267
+ /// <param name="pId"></param>
268
+
269
+ /// <returns></returns>
270
+
271
+ abc ListSearchCurrent(int pId)
272
+
273
+ {
274
+
275
+ abc ret = new abc();
276
+
277
+
278
+
279
+ ret.ID = list[list.FindIndex(abc => abc.ID == pId)].ID;
280
+
281
+ ret.Name = list[list.FindIndex(abc => abc.ID == pId)].Name;
282
+
283
+
284
+
285
+ return ret;
286
+
287
+ }
288
+
289
+
290
+
291
+ /// <summary>
292
+
293
+ /// 指定Idの1つ前のインデックスのabcを返す
294
+
295
+ /// </summary>
296
+
297
+ /// <param name="pId"></param>
298
+
299
+ /// <returns></returns>
300
+
301
+ abc ListSearchPrev(int pId)
302
+
303
+ {
304
+
305
+ abc ret = new abc();
306
+
307
+
308
+
309
+ ret.ID = list[list.FindIndex(abc => abc.ID == pId) - 1].ID;
310
+
311
+ ret.Name = list[list.FindIndex(abc => abc.ID == pId) - 1].Name;
312
+
313
+
314
+
315
+ return ret;
316
+
317
+ }
318
+
319
+
320
+
321
+ /// <summary>
322
+
323
+ /// 指定Idの1つ後のインデックスのabcを返す
324
+
325
+ /// </summary>
326
+
327
+ /// <param name="pId"></param>
328
+
329
+ /// <returns></returns>
330
+
331
+ abc ListSearchNext(int pId)
332
+
333
+ {
334
+
335
+ abc ret = new abc();
336
+
337
+
338
+
339
+ ret.ID = list[list.FindIndex(abc => abc.ID == pId) + 1].ID;
340
+
341
+ ret.Name = list[list.FindIndex(abc => abc.ID == pId) + 1].Name;
342
+
343
+
344
+
345
+ return ret;
346
+
347
+ }
348
+
349
+ }
350
+
351
+
352
+
353
+ ```
354
+
355
+
356
+
357
+ list[list.FindIndex(abc => abc.ID == pId) - 1]
358
+
359
+  ↓
360
+
361
+ list.FindIndex(abc => abc.ID == pId) … ここで、合致するIDの構造体のインデックス番号を取得します。
362
+
363
+ その外枠のlist[ ~ ]でインデックス指定してIDとNameの値を取得する、というものです。
364
+
365
+ その為、FindIndexの値に加算・減算を行えばインデックスの前後を取得することが可能です。
366
+
229
367
   
230
368
 
231
369
   
232
370
 
233
-
371
+ 他にも例えばこのメソッドに、引数としてインデックスの前後の足し算引き算のInt値を含めたり
372
+
234
-
373
+ アレンジすることで、色々応用できるかも知れません。
374
+
235
- 以下メソッドから値取得していす。
375
+ ※例えば3つのメソッドを1つにとめるには?など
236
-
237
- 上から、
376
+
238
-
239
-
240
-
241
- ・指定したIDに合致するインデックスからabcを取得する
377
+
242
-
243
- ・指定したIDに合致するインデックス - 1からabcを取得する
378
+
244
-
245
- ・指定したIDに合致するインデックス + 1からabcを取得する
246
-
247
-
248
-
249
- これで1つ前、1つ後も取得できます。
250
-
251
-
252
-
253
-
254
-
255
- ```C#
256
-
257
- /// <summary>
258
-
259
- /// 指定Idのabcを返す
260
-
261
- /// </summary>
262
-
263
- /// <param name="pId"></param>
264
-
265
- /// <returns></returns>
266
-
267
- abc ListSearchCurrent(int pId)
268
-
269
- {
270
-
271
- abc ret = new abc();
272
-
273
-
274
-
275
- ret.ID = list[list.FindIndex(abc => abc.ID == pId)].ID;
276
-
277
- ret.Name = list[list.FindIndex(abc => abc.ID == pId)].Name;
278
-
279
-
280
-
281
- return ret;
379
+ 頑張ってください!
282
-
283
- }
284
-
285
-
286
-
287
- /// <summary>
288
-
289
- /// 指定Idの1つ前のインデックスのabcを返す
290
-
291
- /// </summary>
292
-
293
- /// <param name="pId"></param>
294
-
295
- /// <returns></returns>
296
-
297
- abc ListSearchPrev(int pId)
298
-
299
- {
300
-
301
- abc ret = new abc();
302
-
303
-
304
-
305
- ret.ID = list[list.FindIndex(abc => abc.ID == pId) - 1].ID;
306
-
307
- ret.Name = list[list.FindIndex(abc => abc.ID == pId) - 1].Name;
308
-
309
-
310
-
311
- return ret;
312
-
313
- }
314
-
315
-
316
-
317
- /// <summary>
318
-
319
- /// 指定Idの1つ後のインデックスのabcを返す
320
-
321
- /// </summary>
322
-
323
- /// <param name="pId"></param>
324
-
325
- /// <returns></returns>
326
-
327
- abc ListSearchNext(int pId)
328
-
329
- {
330
-
331
- abc ret = new abc();
332
-
333
-
334
-
335
- ret.ID = list[list.FindIndex(abc => abc.ID == pId) + 1].ID;
336
-
337
- ret.Name = list[list.FindIndex(abc => abc.ID == pId) + 1].Name;
338
-
339
-
340
-
341
- return ret;
342
-
343
- }
344
-
345
- }
346
-
347
-
348
-
349
- ```