回答編集履歴
2
コードの間違いを修正
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.時間 &&
|
59
|
+
.Where(x => 四時半 < x.時間 && x.時間 <= 五時半);
|
56
60
|
|
57
61
|
|
58
62
|
|
1
Aggregateの例を追記
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
|
+
|