1

私が解決しようとしているこのタスクの問題に対する答えを見つけるのに苦労しています。MIN/MAX 句を調べましたが、シナリオに適切に適合していないようです。

列が一致するすべての行を検索するこの単純な LINQ クエリを実行しています

using (DataClasses2DataContext db = new DataClasses2DataContext())
        {
            var routes = (

                          from txcalllines in db.TxcAllLines
                          where
                              txcalllines.LineName == searchString
                          select txcalllines);

            return routes.ToList();
        }

これにより、次の結果が返されます。

FILE                           LINE   START               FINISH
output_txc_45486m.xml           486   North Station       Friswell Place
SVRAYAO486-20121008-22264.xml   486   Dunoon              Inveraray
SVRAYAO486-20121008-22265.xml   486   Dunoon              Inveraray
SVRAYAO486-20121008-22266.xml   486   Dunoon              Inveraray
SVRGMB04860-20120103-5774.xml   486   BURY                RADCLIFFE
SVRGMB04860-20120103-5775.xml   486   BURY                RADCLIFFE
SVRYNAO486-20120217-44588.xml   486   Selby Bus Stn       Pollington Circular

問題は、このクエリを実行すると、同じルートの複数の行が返されることです (LINE、START、および FINISH が同じであることがわかります)。ここでは、各ルートの最初の一致する行のみを返したいと考えています。

したがって、望ましい結果は次のようになります。

FILE                           LINE   START               FINISH
output_txc_45486m.xml           486   North Station       Friswell Place
SVRAYAO486-20121008-22264.xml   486   Dunoon              Inveraray
SVRGMB04860-20120103-5774.xml   486   BURY                RADCLIFFE
SVRYNAO486-20120217-44588.xml   486   Selby Bus Stn       Pollington Circular
4

2 に答える 2

1

を使用GroupByして、各グループの最初の要素を取得できます。

var routes = (from txcalllines in db.TxcAllLines
              where txcalllines.LineName == searchString
              group txcalllines by new { txcalllines.Start, txcalllines.Finish } into g  // Groups the txcalllines by the pair (Start, Finish)
              select g.First());  // Gets the first intem of the group
于 2013-02-02T13:44:37.353 に答える
0

質問を誤解していました、申し訳ありません...多分これは助けになるでしょうか? https://stackoverflow.com/a/706903/1380061

于 2013-02-02T13:46:08.037 に答える