質問編集履歴

4

2016/12/16 07:30

投稿

syogakusya
syogakusya

スコア67

test CHANGED
File without changes
test CHANGED
@@ -32,6 +32,8 @@
32
32
 
33
33
  {最遅5時半、最早4時半、男}で絞り込んだ後、orderbydescendingしてfirstordefaultをとってくるのがよいでしょうか?
34
34
 
35
+ これだとやはり1入力で1orderbyになりますが…
36
+
35
37
  そもそも1件しか必要ないのですが、ソートせずにとってきたりする方法もありますか?
36
38
 
37
39
  時間についてminをつかおうとおもったのですが、データのインスタンスではなく時間がとれてしまいました。

3

2016/12/16 07:30

投稿

syogakusya
syogakusya

スコア67

test CHANGED
@@ -1 +1 @@
1
- 【c#】linqで順序保持したままフィルターした
1
+ 【c#】linqで値が近いデータ一件だけ抽出したい
test CHANGED
@@ -35,3 +35,5 @@
35
35
  そもそも1件しか必要ないのですが、ソートせずにとってきたりする方法もありますか?
36
36
 
37
37
  時間についてminをつかおうとおもったのですが、データのインスタンスではなく時間がとれてしまいました。
38
+
39
+ ※順序を保持したまま〜というのはなしになったため、タイトルを変えました。

2

2016/12/16 07:26

投稿

syogakusya
syogakusya

スコア67

test CHANGED
File without changes
test CHANGED
@@ -17,3 +17,21 @@
17
17
  さきにorderbyしたいのは、実際には入力というのがクライアントからの膨大な数になるからです。
18
18
 
19
19
  それでも毎回フィルタしてからorderbyしたほうがいいでしょうか?
20
+
21
+
22
+
23
+ ###補足2
24
+
25
+
26
+
27
+ 試してみたところ、最初にorderbyをするだけで何秒もかかってしまうので、最初にorderbyするという選択肢はなくなりました。
28
+
29
+ 本当にやりたいことは、{時間、性別}というデータのコレクションがあり(これが1から10000まで)、{5時、男}という入力に対して、まず4時半から5時半の間で最も遅い時間のその性別のデータをとってくるということです。
30
+
31
+ 最初にこのデータのコレクションをソートするというのはやめるとして、どのような方法で取得するのがよいでしょうか?
32
+
33
+ {最遅5時半、最早4時半、男}で絞り込んだ後、orderbydescendingしてfirstordefaultをとってくるのがよいでしょうか?
34
+
35
+ そもそも1件しか必要ないのですが、ソートせずにとってきたりする方法もありますか?
36
+
37
+ 時間についてminをつかおうとおもったのですが、データのインスタンスではなく時間がとれてしまいました。

1

2016/12/16 07:24

投稿

syogakusya
syogakusya

スコア67

test CHANGED
File without changes
test CHANGED
@@ -9,3 +9,11 @@
9
9
  このとき、まずは1から10000までの入ったリストをorderbyでソートし、その後各入力に対してwhereでフィルタした結果を返したいのですが、whereを使うと順序が保持されないとドキュメントにありました。
10
10
 
11
11
  このような場合にどういった処理をすればよいか教えてください。
12
+
13
+
14
+
15
+ ###補足
16
+
17
+ さきにorderbyしたいのは、実際には入力というのがクライアントからの膨大な数になるからです。
18
+
19
+ それでも毎回フィルタしてからorderbyしたほうがいいでしょうか?