文字列である f.bar で並べ替えたい linq クエリがありますが、まずブール フィールドである f.foo で並べ替えたいとも思っています。以下のクエリのように。
(from f in foo
orderby f.foo, f.bar
select f)
これはコンパイルされますが、期待どおりには動作しません。ブールフィールドを無視して、単に f.bar で順序付けするだけです。
私がバカなのは分かっていますが、この動作を実現するには何をする必要がありますか?
ありがとう
ベストアンサー1
それはうまくいくはずです - エンティティをfalse
foo 値が最初、次に foo 値を持つものtrue
。
それは確かに LINQ to Objects では機能しますが、実際に使用している LINQ プロバイダーはどれですか?
これはLINQ to Objectsの例です。する仕事:
using System;
using System.Linq;
public static class Test
{
public static void Main()
{
var data = new[]
{
new { x = false, y = "hello" },
new { x = true, y = "abc" },
new { x = false, y = "def" },
new { x = true, y = "world" }
};
var query = from d in data
orderby d.x, d.y
select d;
foreach (var result in query)
{
Console.WriteLine(result);
}
}
}