第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

LINQ with groupby和count

LINQ with groupby和count

C#
Qyouu 2019-08-26 15:31:21
LINQ with groupby和count這很簡(jiǎn)單,但我不知所措:給定這種類型的數(shù)據(jù)集:UserInfo(name, metric, day, other_metric)和這個(gè)樣本數(shù)據(jù)集:joe  1 01/01/2011 5jane 0 01/02/2011 9john 2 01/03/2011 0jim  3 01/04/2011 1jean 1 01/05/2011 3jill 2 01/06/2011 5jeb  0 01/07/2011 3jenn 0 01/08/2011 7我想檢索一個(gè)表,按順序(0,1,2,3 ..)列出指標(biāo),并計(jì)算計(jì)數(shù)的總次數(shù)。所以從這個(gè)集合你最終得到:0 3    1 2    2 2    3 1我正在努力解決LINQ語(yǔ)法問(wèn)題,但我仍然堅(jiān)持在哪里放置一個(gè)groupby并計(jì)算....任何幫助?POST編輯:我從來(lái)沒(méi)有能夠得到發(fā)布的答案,因?yàn)樗麄兛偸欠祷匾粋€(gè)記錄與不同的計(jì)數(shù)。但是,我能夠?qū)INQ to SQL示例放在一起,它確實(shí)有效:        var pl = from r in info                 orderby r.metric                     group r by r.metric into grp                 select new { key = grp.Key, cnt = grp.Count()};這個(gè)結(jié)果給了我一組有序的記錄,其中包含“指標(biāo)”和與每個(gè)記錄相關(guān)聯(lián)的用戶數(shù)。我對(duì)LINQ一般都是新手,對(duì)于我未經(jīng)訓(xùn)練的眼睛,這種方法看起來(lái)與純LINQ方法非常相似,但給了我一個(gè)不同的答案。
查看完整描述

3 回答

?
拉風(fēng)的咖菲貓

TA貢獻(xiàn)1995條經(jīng)驗(yàn) 獲得超2個(gè)贊


調(diào)用之后GroupBy,您將獲得一系列組IEnumerable<Grouping>,其中每個(gè)分組本身都會(huì)公開Key用于創(chuàng)建組的組,也是IEnumerable<T>原始數(shù)據(jù)集中的任何項(xiàng)目。您只需要調(diào)用Count()該分組即可獲得小計(jì)。


foreach(var line in data.GroupBy(info => info.metric)

                        .Select(group => new { 

                             Metric = group.Key, 

                             Count = group.Count() 

                        })

                        .OrderBy(x => x.Metric)

{

     Console.WriteLine("{0} {1}", line.Metric, line.Count);

}

這是一個(gè)非??焖俚幕貜?fù),但我對(duì)第一行有一點(diǎn)問(wèn)題,特別是“data.groupby(info => info.metric)”


我假設(shè)你已經(jīng)有一些class看起來(lái)像的列表/數(shù)組


class UserInfo {

    string name;

    int metric;

    ..etc..

...

List<UserInfo> data = ..... ;

當(dāng)你這樣做時(shí)data.GroupBy(x => x.metric),它意味著“對(duì)于xIEnumerable中定義的每個(gè)元素data,計(jì)算它.metric,然后將具有相同度量的所有元素分組為a Grouping并返回IEnumerable所有結(jié)果組。給出你的示例數(shù)據(jù)集


    <DATA>           | Grouping Key (x=>x.metric) |

joe  1 01/01/2011 5  | 1

jane 0 01/02/2011 9  | 0

john 2 01/03/2011 0  | 2

jim  3 01/04/2011 1  | 3

jean 1 01/05/2011 3  | 1

jill 2 01/06/2011 5  | 2

jeb  0 01/07/2011 3  | 0

jenn 0 01/08/2011 7  | 0

在groupby之后會(huì)產(chǎn)生以下結(jié)果:


(Group 1): [joe  1 01/01/2011 5, jean 1 01/05/2011 3]

(Group 0): [jane 0 01/02/2011 9, jeb  0 01/07/2011 3, jenn 0 01/08/2011 7]

(Group 2): [john 2 01/03/2011 0, jill 2 01/06/2011 5]

(Group 3): [jim  3 01/04/2011 1]


查看完整回答
反對(duì) 回復(fù) 2019-08-26
?
HUH函數(shù)

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超4個(gè)贊

假設(shè)userInfoListList<UserInfo>

        var groups = userInfoList            .GroupBy(n => n.metric)
            .Select(n => new
            {
                MetricName = n.Key,
                MetricCount = n.Count()
            }
            )
            .OrderBy(n => n.MetricName);

對(duì)于lambda表達(dá)式GroupBy(),n => n.metric意味著它會(huì)得到場(chǎng)metric從每一個(gè)UserInfo遇到的對(duì)象。類型n取決于上下文,在第一次出現(xiàn)時(shí)是類型UserInfo,因?yàn)榱斜戆?code>UserInfo對(duì)象。在第二次出現(xiàn)n是類型Grouping,因?yàn)楝F(xiàn)在它是一個(gè)Grouping對(duì)象列表。

Grouping有像你這樣的擴(kuò)展方法.Count(),.Key()以及你期望的其他任何東西。正如你查.Lenght一個(gè)string,你可以檢查.Count()在一組。


查看完整回答
反對(duì) 回復(fù) 2019-08-26
?
呼喚遠(yuǎn)方

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超11個(gè)贊

userInfos.GroupBy(userInfo => userInfo.metric)
        .OrderBy(group => group.Key)
        .Select(group => Tuple.Create(group.key, group.Count()));


查看完整回答
反對(duì) 回復(fù) 2019-08-26
  • 3 回答
  • 0 關(guān)注
  • 463 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)