1

悲しい部分は、私は以前にこれをやったことがあります。私はこれを理解したのを覚えています。今日、私はこれを行う方法を思い出すことができないようです。

したがって、次のリストがあります。

public List<taters> getTaters(){
    var firstTaters = from s in n.veggies
                      where s.active == true
                     select s.html;

    var secondTaters = from s in n.roots
                      where s.active == true
                     select s.html;

    //now here I want to do something to combine the two 
    //(e.g. a Concat or some such) and   
    //THEN I want to order the concatenated list of results 
    //by 'date_created' descending.  
}

上記のコメントで質問。一緒に結合した後にそれらを注文するにはどうすればよいですか?

4

4 に答える 4

2
firstTaters.Concat(secondTaters)
           .OrderByDescending(html => html.date_created)

また、コードの重複を避けるために、フィルタリングの前に 2 つのセットで連結を使用してみてください (遅くなる可能性がありますが、より保守しやすくなります)。

public IEnumerable<taters> getTaters()
{
    return from s in n.veggies.Concat(n.roots)
           where s.active == true
           orderby s.html.date_created descending
           select s.html;
}

忘れずに電話ToListするか、署名を変更して返却するIQueryble<taters>か、IEnumerable<taters>

于 2013-09-23T18:26:08.467 に答える
2

を使用するか、明確な結果が必要な場合はConcat使用しますUnion

var concated = 
    firstTaters.Concat(secondTaters).OrderByDescending(html => html.date_created);

//Gives distinct values
var unioned = 
    firstTaters.Union(secondTaters).OrderByDescending(html => html.date_created);
于 2013-09-23T18:27:25.590 に答える
2

または、次の例のようにこれを行うことができます。

public List<taters> getTaters(){
    var firstTaters = from s in n.veggies
                      where s.active == true
                     select s.html;

    var secondTaters = from s in n.roots
                      where s.active == true
                     select s.html;

    return (
        from first in firstTaters
        join second in secondTaters on secondTaters.someField equals second.someField
        select new 
        {
            ....
            ....
        }
    ).toList();
}
于 2013-09-23T18:29:08.073 に答える
1

これを追加するだけです:

return firstTaters.Concat(secondTaters).OrderByDescending(el => el.DateCreated);
于 2013-09-23T18:27:37.757 に答える