seri groupby ve sayısı ile
Bu oldukça basit ama kararsızım: Veri kümesi: bu tür verildi
UserInfo(name, metric, day, other_metric)
ve bu örnek veri kümesi:
joe 1 01/01/2011 5
jane 0 01/02/2011 9
john 2 01/03/2011 0
jim 3 01/04/2011 1
jean 1 01/05/2011 3
jill 2 01/06/2011 5
jeb 0 01/07/2011 3
jenn 0 01/08/2011 7
Sırayla ölçümü(0,1,2,3..) listeleyen bir tablo almak için Kont oluşur kez sayısı ile istiyorum. Bu set ile bitirmek istiyorum:
0 3
1 2
2 2
3 1
SERİ sözdizimi ile boğuşuyor ama groupby ve sayısı koymak için yere takıldım ben.... herhangi bir yardım??
POST Edit: asla gönderildi cevaplar hep farklı sayısı ile bir rekor iade olarak iş bulabildim. Ancak birlikte iş yaptığı örnek SQL için bir SERİ koymayı başardım:
var pl = from r in info
orderby r.metric
group r by r.metric into grp
select new { key = grp.Key, cnt = grp.Count()};
Bu sonuç beni 'ölçümleri' ve kullanıcılar ile ilgili her sayısını. kayıtları sıralı bir set verdi Genel olarak SERİ açıkça yeniyim ve benim eğitimsiz göz için bu yaklaşım, saf ETMENİZ yaklaşımına çok benzer görünüyor yine de bana farklı bir cevap verdi.
CEVAP
Sonra arama GroupBy
, serinin grupları IEnumerable<Grouping>
, Her Gruplandırma kendini gösterir Key
kullanılan oluşturmak için Grup ve aynı zamanda bir IEnumerable<T>
her öğe içinde orijinal veri kümesi. Sadece onu Count()
alt toplam almak için Gruplandırma aramak zorunda.
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);
}
< / ^ hr .
Ama bu ilk satır, "veri.özellikle ile ilgili bir sorun biraz yaşıyorum zekice hızlı bir cevap oldu(bilgi=>groupby bilgi.metrik)"
Zaten/gibi görünüyor class
bazı dizi listesi var sanıyorum
class UserInfo {
string name;
int metric;
..etc..
}
...
List<UserInfo> data = ..... ;
Yapmak data.GroupBy(x => x.metric)
, "demek için her öğe x
IEnumerable tarafından tanımlanan data
hesaplamak .metric
, sonra da tüm grup elemanları ile aynı metrik Grouping
dönüş IEnumerable
tüm elde edilen gruplar. Örnek veri seti verildi
<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 sonra şu sonuç ortaya çıkar:
(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]
GroupBy, Count kullanarak ve SERİ Topl...
Seri grup sayısı suretiyle...
Nasıl Yineleme Sayısı bu SERİ ile List...
Nasıl bir Lua tabloda giriş sayısı?...
JQuery tablo satır ve sütun sayısı...