0

動的式を組み合わせることは可能ですか:

from c in collection where c.Property == true select c

表情で

from result in results 
group result by result.Property 
into g 
select new g.Key 

「結果」は、最初の式から返されたコレクションである必要がありますか?

合成式を使用して NHibernate を使用して db からデータをフェッチするので、次のように記述した場合、結合式が等しくなるようにします。

from c in collection 
where c.Property == true
group c by c.Property
into g
select new g.Key

式はクラスで定義されています。

public class MyClass : MyAbstractClass<User>
{
    public MyClass()
    {
        FirstExpression = users => from user in users where ... select user;              

        SecondExpression = results => from result in results
                       group result by result.Property into g
                       select g.Key

    }
}
4

2 に答える 2

1
var query = collection;

if (condition)
    query = query.Where(c => c.Property);

var result = query.GroupBy(c => c.Property).Select(g => g.Key);
于 2013-01-11T09:30:05.157 に答える
0

はい、それは可能です。最初のクエリの結果をresults列挙せずに変数に割り当てるだけです。

var results = from c in collection where c.Property == true select c;

from result in results 
group result by result.Property 
into g 
select g.Key; 

ところで、2番目のクエリは単純distinctです:

results.Distinct(r => r.Property);
于 2013-01-11T09:29:33.080 に答える