回答編集履歴
2
言葉足らずな部分を修正
test
CHANGED
@@ -18,11 +18,11 @@
|
|
18
18
|
|
19
19
|
キャッシュした場合は実現したい検索処理によってどうしたら高速になるのかは変わってきます。
|
20
20
|
|
21
|
-
一番簡単な方法であればWhereメソッドを必要に応じて繋げていき、最も遅い時間を取ってくるのは`LastOrDefault`を、最も早い時間は`FirstOrDefault`を使えばいいです。
|
21
|
+
一番簡単な方法であればコレクションをソート済みで用意しておき、Whereメソッドを必要に応じて繋げていき、最も遅い時間を取ってくるのは`LastOrDefault`を、最も早い時間は`FirstOrDefault`を使えばいいです。
|
22
22
|
|
23
23
|
|
24
24
|
|
25
|
-
|
25
|
+
ソートの必要がないように最初にコレクションを用意しておくのはここでもやはり重要です。
|
26
26
|
|
27
27
|
まずは時間順でソートしておきましょう。これはSQLならデータを取ってくる時にしておけばいいです。
|
28
28
|
|
1
言葉足らずな部分を修正
test
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
|
7
7
|
|
8
8
|
|
9
|
-
もしもコレクションのソースがデータベースで、毎回問い合わせ
|
9
|
+
もしもコレクションのソースがデータベースで、キャッシュしておけずに毎回SQL問い合わせが発生するようなケース(Webアプリの場合とか)だったらそもそもLinq使うのやめて全部SQL文で対処しましょう。SQL側にも1件だけデータを取ってくるための構文が大体用意されてます。(SQL Serverだったら TOP 1とかね。)
|
10
10
|
|
11
11
|
|
12
12
|
|