回答編集履歴

2

コードの間違いを修正

2016/12/16 07:54

投稿

tamoto
tamoto

スコア4103

test CHANGED
@@ -40,6 +40,10 @@
40
40
 
41
41
 
42
42
 
43
+ ---
44
+
45
+
46
+
43
47
  追記:
44
48
 
45
49
  1件だけ抽出したい場合、Aggregateを使う方法があります。
@@ -52,7 +56,7 @@
52
56
 
53
57
  .Where(x => x.性別 == 男)
54
58
 
55
- .Where(x => 四時半 < x.時間 && < x.);
59
+ .Where(x => 四時半 < x.時間 && x. <= );
56
60
 
57
61
 
58
62
 

1

Aggregateの例を追記

2016/12/16 07:54

投稿

tamoto
tamoto

スコア4103

test CHANGED
@@ -37,3 +37,31 @@
37
37
  Linqを使う場合はこれで正解だと思います。
38
38
 
39
39
  コレクションの種類次第では、もう少し効率の良い方法があるかもしれませんが。
40
+
41
+
42
+
43
+ 追記:
44
+
45
+ 1件だけ抽出したい場合、Aggregateを使う方法があります。
46
+
47
+ ```csharp
48
+
49
+ // 先にフィルタする
50
+
51
+ var filterdCollection = originalCollection
52
+
53
+ .Where(x => x.性別 == 男)
54
+
55
+ .Where(x => 四時半 < x.時間 && 五時半 < x.時間);
56
+
57
+
58
+
59
+ // 二つの要素を比較して、{ 時間 } が遅いほうを選択
60
+
61
+ var result = filteredCollection.Aggregate((x, y) => (x.時間 < y.時間) ? y : x);
62
+
63
+ ```
64
+
65
+
66
+
67
+