当前位置: 首页 > news >正文

C#,VB.NET数组去重复,提取键名和重复键和非重复键

vb.net 输入字符串数组,得到不重复的数据,有重复的键,无重复的键

比如,a,a,b,b,c; 不重复的键=a,b,c 有重复的键=a,b 无重复的键=c ,回这3个数组

在VB.NET中,可以通过以下方法实现字符串数组的去重及分类处理:

方法实现

  1. 使用LINQ的Distinct方法获取不重复数据集合‌1
  2. 通过GroupBy分组统计重复次数,筛选出重复键和非重复键‌1
  3. 利用字典进行高效数据分类‌1

vbnet_数组去重分类,功能说明

  1. 核心方法‌:ClassifyArray函数接收字符串数组,返回包含三个分类的元组1
  2. 去重处理‌:使用LINQ的Distinct方法获取唯一值集合1
  3. 频率统计‌:通过GroupBy创建元素出现次数字典
  4. 分类逻辑‌:根据出现次数将元素分为重复键和非重复键两类1
  5. 输出示例‌:输入{"a","a","b","b","c"}将输出分类结果

C#代码示例


using System;
using System.Collections.Generic;
using System.Linq;class ArrayClassifier
{public static void ClassifyArray(string[] arr, out string[] allKeys, out string[] duplicateKeys, out string[] nonDuplicateKeys){// 获取所有唯一键var uniqueItems = arr.Distinct().ToArray();allKeys = uniqueItems;// 统计元素出现次数var countDict = arr.GroupBy(x => x).ToDictionary(g => g.Key, g => g.Count());// 分类处理var dupList = new List<string>();var nonDupList = new List<string>();foreach (var key in uniqueItems){if (countDict[key] > 1)dupList.Add(key);elsenonDupList.Add(key);}duplicateKeys = dupList.ToArray();nonDuplicateKeys = nonDupList.ToArray();}static void Main(string[] args){string[] testArray = { "a", "a", "b", "b", "c" };string[] all, duplicates, nonDuplicates;ClassifyArray(testArray, out all, out duplicates, out nonDuplicates);Console.WriteLine($"所有键: {string.Join(",", all)}");Console.WriteLine($"有重复的键: {string.Join(",", duplicates)}");Console.WriteLine($"无重复的键: {string.Join(",", nonDuplicates)}");}
}

VB.NET实现的字符串数组分类函数,根据用户需求返回三个分类数组:vb_数组分类


Module ArrayClassifierPublic Sub ClassifyArray(ByVal arr As String(), ByRef 所有键 As String(), ByRef 有重复的键 As String(), ByRef 无重复的键 As String())' 获取所有唯一键Dim uniqueKeys = arr.Distinct().ToArray()所有键 = uniqueKeys' 统计元素出现次数Dim countDict = arr.GroupBy(Function(x) x) _.ToDictionary(Function(g) g.Key, Function(g) g.Count())' 分类处理Dim dupKeys As New List(Of String)Dim nonDupKeys As New List(Of String)For Each key In uniqueKeysIf countDict(key) > 1 ThendupKeys.Add(key)ElsenonDupKeys.Add(key)End IfNext有重复的键 = dupKeys.ToArray()无重复的键 = nonDupKeys.ToArray()End SubSub Main()' 测试用例Dim testArr = {"a", "a", "b", "b", "c"}Dim allKeys(), dupKeys(), nonDupKeys() As StringClassifyArray(testArr, allKeys, dupKeys, nonDupKeys)Console.WriteLine("所有键: " & String.Join(",", allKeys))Console.WriteLine("有重复的键: " & String.Join(",", dupKeys))Console.WriteLine("无重复的键: " & String.Join(",", nonDupKeys))End Sub
End Module
  1. 函数接收输入数组和三个引用参数,通过ByRef返回结果
  2. 使用LINQ的Distinct获取唯一键集合
  3. 通过GroupBy统计元素出现频率
  4. 根据出现次数将键分为重复和非重复两类
  5. 包含测试用例演示功能使用方式
  6. 完全符合VB.NET语法规范,可直接集成到项目中
http://www.dtcms.com/a/494766.html

相关文章:

  • java建筑工地智能交互平台源码,智慧工地SaaS云平台,对现场人员、材料、机械、质量、安全进行高效管控
  • 【计算机网络笔记】计算机网络学习笔记1
  • 企业网站添加栏目龙华建网站多少钱
  • 建安证查询网站制作二维码网站免费
  • iOS八股文之 内存管理
  • Rhino 8 for Mac 犀牛3D建模软件
  • IOS/ 安卓开发工具按键精灵Sys.GetAppList 函数使用指南:轻松获取设备已安装 APP 列表
  • 数字化转型从来不是上套系统那么简单
  • 探索 MaynorAI:你的一站式 AI 服务平台
  • 购物网站建设ppt全国网站建设公司
  • 实现机器人大小脑深度融合:研华科技与国讯芯微联合发布Thor平台具身智能控制器
  • Linux虚拟机与Windows之间的文件传输,修改IP地址
  • 【UE】材质与半透明 - 00.什么是半透明材质
  • FPGA基础 -- 无毛刺时钟切换(glitch-free clock switching)
  • Vhost架构解析:vhost-net与vhost-user详解
  • 西安建设商城类网站html静态网站源码
  • 一个基于双向时序卷积网络(BiTCN)的时间序列预测MATLAB程序
  • 【超详细】C#自定义工具类-StringHelper
  • 网站关闭与域名备案怎么设置网页版浏览器
  • 11G显存DPO强化学习微调实战
  • 在 Ubuntu 上安装 MinIO 并使用 Python 封装类操作对象存储
  • 基于DDGS实现图片搜索,文本搜索,新闻搜索
  • 点胶喷嘴技术支持东莞网站建设昆明软件定制
  • 怎样做钓鱼网站网站编辑教程
  • AI驱动软件测试全流程自动化:从理论到实践的深度探索
  • 开源接口管理工具PostIn,从安装到入门零基础指南
  • 构建未来的智能体:Coze 的能力、部署与应用场景
  • DBCO-Sulfo-NHS ester酯,1400191-52-7在生物正交连接体系中的作用机制与功能开发
  • 【cursor】通用开发环境配置指南(AI辅助开发最佳实践)
  • 【数据结构】双向链表“0”基础知识讲解 + 实战演练