Linq 语法的group toDictionary用法

本文介绍如何使用Java将一个包含Language对象的列表按LanguageCode属性进行分组,并将结果存储在字典中,展示了实例化对象、添加到列表以及使用LINQ操作的详细步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题:现在有一个列表List,列表里面是Language对象,Language对象有LanguageCode,LanguageName,WordCount三个属性,现在要使用group通过LanguageCode将列表中的对象分类并将每类存入字典。
1.定义一个Language对象

public class Language
{
    public Language(string languageCode, string languageName,int wordCount)
    {
        LanguageCode = languageCode;
        LanguageName = languageName;
        WordCount = wordCount;
    }
    public string LanguageCode { get; set; }
    public string LanguageName { get; set; }
    public int WordCount { get; set; } 
}

2.实例化Language并添加进List

var languages = new List<Language>();
languages.Add(new Language("US", "US-XiaoWang", 15));
languages.Add(new Language("US", "US-XiaoLiu", 18)); 
languages.Add(new Language("US", "US-XiaoSang", 40));

languages.Add(new Language("CN", "CN-桑", 7));
languages.Add(new Language("CN", "CN-王", 21));
languages.Add(new Language("CN", "CN-侯", 30));

languages.Add(new Language("JP", "JP-sssss", 24));
languages.Add(new Language("JP", "JP-aaaaa", 52));
languages.Add(new Language("JP", "JP-lllll", 60));

3.通过LanguageCode进行分组

var dic = new Dictionary<string, List<Language>>();
dic = languages.GroupBy(o => o.LanguageCode).ToDictionary(g => g.Key, g => g.ToList());

4.输出结果:

int i = 0;
foreach (var language in dic.Values)
{
    i++;
    Console.WriteLine($"第{i}种分类");
    foreach(var names in language)
    {

        Console.WriteLine($"{names.WordCount} {names.LanguageName}");
    }
 
}

结果如下图:
在这里插入图片描述
由结果图可知,将List中的内容通过LanguageCode分成不同类型(三种),也就是说第三步的dic共有三个值,如下图:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

S 占占

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值