首页 > 代码库 > C# 使用Dictionary、linq实现根据集合里面的字符串进行分组
C# 使用Dictionary、linq实现根据集合里面的字符串进行分组
分组两种方法:
List<string> list = new List<string>() { "1_32", "2_10", "1_8", "1_25", "2_3", "3_5", "5_15", "3_16" }; //对上面集合里面的字符串按照“_”进行分组。 #region //使用字典,键值对集合保存分组数据。 Dictionary<string, List<string>> groupDic = new Dictionary<string, List<string>>(); foreach (var item in list) { //取KEY值 string key = item.Split(‘_‘)[0]; //根据key值判断集合中是否存在指定的键,不存在则创建一个。 if (!groupDic.ContainsKey(key)) { groupDic.Add(key, new List<string>()); //初始化 } groupDic[key].Add(item); //直接把当前元素添加到,key对应的List集合中。 } foreach (var item in groupDic) { var s = groupDic[item.Key]; for (int i = 0; i < s.Count; i++) { Console.WriteLine("KEY:{0} Value:{1}", item.Key, s[i]); } } #endregion Console.WriteLine(); #region //使用linq 分组 var groupList = from s in list group s by s.Split(‘_‘)[0] into g select g; foreach (var item in groupList) { var s = groupDic[item.Key]; for (int i = 0; i < s.Count; i++) { Console.WriteLine("KEY:{0} Value:{1}", item.Key, s[i]); } } #endregion
C# 使用Dictionary、linq实现根据集合里面的字符串进行分组
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。