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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

LINQ with groupby和count

LINQ with groupby和count

C#
Qyouu 2019-08-26 15:31:21
LINQ with groupby和count這很簡單,但我不知所措:給定這種類型的數(shù)據(jù)集:UserInfo(name, metric, day, other_metric)和這個樣本數(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我想檢索一個表,按順序(0,1,2,3 ..)列出指標,并計算計數(shù)的總次數(shù)。所以從這個集合你最終得到:0 3    1 2    2 2    3 1我正在努力解決LINQ語法問題,但我仍然堅持在哪里放置一個groupby并計算....任何幫助?POST編輯:我從來沒有能夠得到發(fā)布的答案,因為他們總是返回一個記錄與不同的計數(shù)。但是,我能夠?qū)INQ to SQL示例放在一起,它確實有效:        var pl = from r in info                 orderby r.metric                     group r by r.metric into grp                 select new { key = grp.Key, cnt = grp.Count()};這個結(jié)果給了我一組有序的記錄,其中包含“指標”和與每個記錄相關(guān)聯(lián)的用戶數(shù)。我對LINQ一般都是新手,對于我未經(jīng)訓練的眼睛,這種方法看起來與純LINQ方法非常相似,但給了我一個不同的答案。
查看完整描述

3 回答

?
拉風的咖菲貓

TA貢獻1995條經(jīng)驗 獲得超2個贊


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


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);

}

這是一個非常快速的回復,但我對第一行有一點問題,特別是“data.groupby(info => info.metric)”


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


class UserInfo {

    string name;

    int metric;

    ..etc..

...

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

當你這樣做時data.GroupBy(x => x.metric),它意味著“對于xIEnumerable中定義的每個元素data,計算它.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之后會產(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]


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

TA貢獻1836條經(jīng)驗 獲得超4個贊

假設(shè)userInfoListList<UserInfo>

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

對于lambda表達式GroupBy(),n => n.metric意味著它會得到場metric從每一個UserInfo遇到的對象。類型n取決于上下文,在第一次出現(xiàn)時是類型UserInfo,因為列表包含UserInfo對象。在第二次出現(xiàn)n是類型Grouping,因為現(xiàn)在它是一個Grouping對象列表。

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


查看完整回答
反對 回復 2019-08-26
?
呼喚遠方

TA貢獻1856條經(jīng)驗 獲得超11個贊

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


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

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