回答編集履歴
2
コードの間違いを修正
answer
CHANGED
@@ -19,13 +19,15 @@
|
|
19
19
|
Linqを使う場合はこれで正解だと思います。
|
20
20
|
コレクションの種類次第では、もう少し効率の良い方法があるかもしれませんが。
|
21
21
|
|
22
|
+
---
|
23
|
+
|
22
24
|
追記:
|
23
25
|
1件だけ抽出したい場合、Aggregateを使う方法があります。
|
24
26
|
```csharp
|
25
27
|
// 先にフィルタする
|
26
28
|
var filterdCollection = originalCollection
|
27
29
|
.Where(x => x.性別 == 男)
|
28
|
-
.Where(x => 四時半 < x.時間 &&
|
30
|
+
.Where(x => 四時半 < x.時間 && x.時間 <= 五時半);
|
29
31
|
|
30
32
|
// 二つの要素を比較して、{ 時間 } が遅いほうを選択
|
31
33
|
var result = filteredCollection.Aggregate((x, y) => (x.時間 < y.時間) ? y : x);
|
1
Aggregateの例を追記
answer
CHANGED
@@ -17,4 +17,17 @@
|
|
17
17
|
> {最遅5時半、最早4時半、男}で絞り込んだ後、orderbydescendingしてfirstordefaultをとってくるのがよいでしょうか?
|
18
18
|
|
19
19
|
Linqを使う場合はこれで正解だと思います。
|
20
|
-
コレクションの種類次第では、もう少し効率の良い方法があるかもしれませんが。
|
20
|
+
コレクションの種類次第では、もう少し効率の良い方法があるかもしれませんが。
|
21
|
+
|
22
|
+
追記:
|
23
|
+
1件だけ抽出したい場合、Aggregateを使う方法があります。
|
24
|
+
```csharp
|
25
|
+
// 先にフィルタする
|
26
|
+
var filterdCollection = originalCollection
|
27
|
+
.Where(x => x.性別 == 男)
|
28
|
+
.Where(x => 四時半 < x.時間 && 五時半 < x.時間);
|
29
|
+
|
30
|
+
// 二つの要素を比較して、{ 時間 } が遅いほうを選択
|
31
|
+
var result = filteredCollection.Aggregate((x, y) => (x.時間 < y.時間) ? y : x);
|
32
|
+
```
|
33
|
+
|