簡體   English   中英

在Linq中使用Select語句進行分組

[英]Group By using Select statement in Linq

var query = from i in SFC.Supplies_ReceiveTrans 
            orderby i.Poprctnm descending 
            select new { RR = i.Poprctnm };

結果:

RR-01,
RR-01, 
RR-02, 
RR-02, 
RR-02, 
RR-TEST, 
RR-TEST,

我如何在這種陳述中將RR分組

結果:

RR-01,
RR-02, 
RR-TEST

只需進行一些修改,以詢問是否可以執行此操作或您的想法? 對不起,問的太多了,真的很想在linq上學習更多。.我如何將其轉換為字符串,因為它顯示的是真還是假..布爾值語句

var query = SFC.Supplies_ReceiveTrans.Select(s =>
s.Poprctnm.StartsWith(p))
.Distinct()
.OrderBy(p => p)
.Select(p => new { RR = p })
.Take(10);

在這種情況下,可以使用DistinctGroupBy方法

var query = SFC.Supplies_ReceiveTrans.Select(s=> s.Poprctnm)
            .Distinct()
            .OrderByDescending(p => p)
            .Select(p=> new { RR = p });  

如果您使用OrderByDescending那么結果將是

RR-TEST 
RR-02 
RR-01 

但是我想你想要OrderBy那么結果將是

RR-01 
RR-02 
RR-TEST 

因此,請嘗試以下

var query = SFC.Supplies_ReceiveTrans.Select(s=> s.Poprctnm)
            .Distinct()
            .OrderBy(p => p)
            .Select(p=> new { RR = p }); 
var query = SFC.Supplies_ReceiveTrans
            .GroupBy(x=>x.Poprctnm)
            .Select(g=>g.First())
            .OrderByDescending(x=>x.Poprctnm)
            .Select(x=>new { RR = x.Poprctnm });

如果要以組為單位獲取result

var query = SFC.Supplies_ReceiveTrans
            .GroupBy(x=>x.Poprctnm)
            .OrderByDescending(g=>g.Key);                
var result = SFC.Supplies_ReceiveTrans
                     .Select(x => new { RR = x.Poprctnm })
                     .Distinct()
                     .OrderByDescending(x => x.Poprctnm);

看來您需要在這里與眾不同 ,而不是分組

var query = SFC.Supplies_ReceiveTrans
               .Select(x => new {RR = i.Poprctnm})
               .Distinct()
               .OrderByDescending(i => i);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM