私はLinqで何ができるかを実験してきましたが、これまでのところ本当に気に入っています:)
アルゴリズムのクエリをいくつか作成しましたが、期待した結果が得られませんでした...列挙型は常に空を返しました。
ケース#1
List<some_object> next = new List<some_object>();
some_object current = null;
var valid_next_links =
from candidate in next
where (current.toTime + TimeSpan.FromMinutes(5) <= candidate.fromTime)
orderby candidate.fromTime
select candidate;
current = something;
next = some_list_of_things;
foreach (some_object l in valid_next_links)
{
//do stuff with l
}
クエリ宣言を次のようにインラインに変更しましたが、正常に機能しました。
ケース#2
foreach (some_object l in
(from candidate in next
where (current.toTime + TimeSpan.FromMinutes(5) <= candidate.fromTime)
orderby candidate.fromTime
select candidate))
{
//do stuff with l
}
ケース#1でなぜそれが機能しないのか誰かが知っていますか?私の理解では、あなたがそれを宣言したときにクエリは評価されなかったので、どのように違いがあるのかわかりません。