C# 中从字符串数组中删除重复字符串的有效方法

2024-02-21

我想知道一种有效的方法来从 C# 中的字符串数组中删除重复项。

例如,

string[] a = { "abc", "xyz","abc", "def", "ghi", "asdf", "ghi","xd", "abc" };

会变成,

string[] a = { "abc", "xyz","def", "ghi", "asdf", "xd" };

删除重复条目后如何填补空白? 有没有办法在不使用额外的数组来存储元素的情况下做到这一点?

我使用的方法:

1) Sorted the array

2) Replaced the duplicate entries with null

3) Copied NOT null string to a new array.

但正在寻找一种优化的方法来完成同样的事情。

编辑:我正在使用 .NET 2.0 和 VS 2005


您可以使用哈希集:

string[] a = { "abc", "xyz","abc", "def", "ghi", "asdf", "ghi","xd", "abc" };
var b = new HashSet<string>(a);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 中从字符串数组中删除重复字符串的有效方法 的相关文章

  • 如何使用 VS2022 中的新控制台应用程序模板访问命令行参数

    我想知道如何访问命令行参数 因为这是在Program cs通过 Visual Studio 2022 中控制台应用程序的新模板创建文件 See https aka ms new console template for more infor
  • 在 C++ 中,std::string::push_back() 的摊余复杂度是 O(1) 吗?

    我知道标准指定它适用于向量 但是字符串呢 是的 它是摊销常数时间 请参见第 716 页的表 101本文件的 http www open std org jtc1 sc22 wg21 docs papers 2012 n3485 pdf 表
  • 沿着长数据序列在固定大小的移动窗口中查找中值

    给定一个数据序列 可能有重复项 一个固定大小的移动 窗口 从数据开始处每次迭代时移动窗口 序列 使得 1 从窗口中删除最旧的数据元素并添加新数据 元素被推入窗口 2 求每次移动时窗口内数据的中位数 以下帖子没有帮助 有效地找到随机序列的中值
  • Windows 10 UWP 中的视觉状态管理器未在页面加载时应用初始状态

    我有一个带有相关面板的页面 可以根据宽度重新组织 但是 除非宽度 gt 720px 否则它似乎不会在加载时应用任何状态 如果我在加载页面后调整页面大小 则两种状态都有效 解决方法是检查加载页面上的窗口大小并手动选择状态 但我相信这应该自动处
  • 函数的不明确的引用/值版本

    考虑以下函数原型 void Remove SomeContainer Vec const std size t Index SomeContainer Remove SomeContainer Vec const std size t In
  • 不能使用函数名称距离

    以下代码可以正常编译 include
  • 如何在Qt中更快地读取数据?

    Qt读取数据库比C 慢吗 我想我错过了一些东西 为了比较阅读速度 我在 Qt 中编写了以下内容 QElapsedTimer t t start int count 0 QString cs Driver SQL Server Server
  • ASP.NET 数据集 getdataBy 无法启用约束。一行或多行包含违反非空、唯一或外键约束的值

    你好 我有一个非常简单的网络表单 我在此表单上有一个按钮和一个网格视图 以及一个包含链接表 bill docket docket bill 等的数据集 在按钮上单击我使用以下代码 protected void button click ob
  • memccpy 返回比 src 起始地址更低的内存地址

    我有一个学校项目 我必须重新编码memccpy 功能 我使用 2 个程序来检查我的代码是否正常工作 第一个是只有一个主程序的小程序 第二个程序是另一个学生开发的 可以找到here https github com yyang42 mouli
  • C++ 虚拟关键字与重写函数

    我正在学习c 并且正在学习virtual关键字 我在互联网上搜索试图理解它但无济于事 我进入编辑器并做了以下实验 期望它打印两次基本消息 因为我的印象是需要 virtual 关键字来覆盖函数 然而 它打印出了两条不同的消息 有人可以向我解释
  • DataContractJsonSerializer 包含元素类型子类型的通用列表

    我要使用DataContractJsonSerializer用于 JSON 序列化 反序列化 我在 JSON 数组中有两种对象类型 并希望将它们都反序列化为相应的对象类型 具有以下类定义 DataContract public class
  • 不可能的事情发生了!这是什么意思?

    我遇到了一个有趣的运行时错误 我认为这是某种内存泄漏 我写了以下程序 C Code include
  • 函数中的重复参数检查

    我经常有调用层次结构 因为所有方法都需要相同的参数 如果我不想将它们放在实例级别 类的成员 那么我总是问我在每个方法中检查它们的有效性是否有意义 例如 public void MethodA object o if null o throw
  • 如何在 C 预处理器中可靠地检测 Mac OS X、iOS、Linux、Windows? [复制]

    这个问题在这里已经有答案了 如果有一些跨平台 C C 代码需要在 Mac OS X iOS Linux Windows 上编译 我如何在预处理器过程中可靠地检测到它们 大多数编译器都使用预定义的宏 您可以找到列表here http sour
  • 使用 Node.js 访问用 C++ 编写的 SDK

    我有一个用 C 语言编写的 SDK 可以与我的扫描仪设备进行通信 我需要开发一个可以访问扫描仪设备的电子应用程序 我知道有很多库可用于扫描仪 但我想使用这个 SDK 因为它允许我访问设备的完整功能 而且它是由设备制造商提供的 那么 有没有什
  • 来自资源中 ImageSource 的 System.Drawing.Image

    我的问题与这个非常相似 wpf图像资源以及运行时在wpf控件中更改图像 https stackoverflow com questions 940592 wpf image resources and changing image in w
  • 不兼容的指针到字符转换

    我正在编写一个程序 将卡片值写入 52 个点字符的多维数组中 该程序是一个测试数组 稍后我将其作为函数写入主程序中 在程序中 我通过以下方式初始化 for 循环计数0通过51 我用一个switch语句调制13将卡牌值分配给数组点 但是 我收
  • 为什么 char 数组需要 strcpy 而 char star 不需要 - 在 C 中使用结构

    我对这段代码有一个误解 typedef struct EXP int x char name char lastName 40 XMP main XMP a a name eaaa a lastName strcpy a lastName
  • WPF DataGrid 选定项

    我有一个 DataGrid 用户可以通过在最后一行输入数据来添加项目 我还有一个按钮可以删除当前选定的项目 但是 当选择最后一行 空 用于添加新项目 时 最后选定的项目将保留在 SelectedItem 中 因此 如果我打开窗口 选择最后一
  • 频繁插入已排序的集合

    我已经对集合 列表 进行了排序 并且我需要始终保持其排序 我目前在我的集合上使用 List BinarySearch 然后在正确的位置插入元素 我也尝试过在每次插入后对列表进行排序 但性能不可接受 有没有一种解决方案可以提供更好的性能 也许

随机推荐

  • jQuery 是否总是按照 DOM 在代码中出现的顺序迭代它们?

    举例来说 我有一个可排序列表 ul li Item 1 li li Item 2 li li Item 3 li ul 我想知道的是 如果我进行如下所示的 jQuery 调用 each li function key item 我可以期望
  • 为什么相对路径不适用于 xsl:include?

    我有一个 XSL 文件 它可以转换为 PDF 在这个页面的顶部 我有一个很长的 CSS 样式 例如
  • 来自应用程序的新 NSWindow - 不可能完成的任务?

    好吧 我做错了什么 1 创建了cocoa app和appDelegate 命名为 window2AppDelegate2 窗口AppDelegate h import PrefWindowController h interface win
  • 旋转图像和像素碰撞检测

    我这里有这个游戏plunker http plnkr co edit VCdFyn3SE4wSZa0OLRRT p preview 当剑不旋转时 一切正常 您可以通过取消注释第 221 行并注释掉第 222 223 行进行检查 当它们像上面
  • 如何在android中提取这个字符串变量?

    String test 1 Low level programming language true 2 High level programming language false 3 Machine language false 4 All
  • C中的时间戳,精度为毫秒

    我对 C 编程比较陌生 我正在开发一个需要非常精确的时间的项目 因此我尝试写一些东西来创建毫秒精度的时间戳 这似乎有效 但我的问题是这种方法是否正确 或者是否有更简单的方法 这是我的代码 include
  • xdebug 扩展未加载

    我已经安装了 xdebug 显示在 phpinfo 中 但我试图让它与 PHPUnit 的代码覆盖功能一起使用 它一直告诉我 XDebug 扩展未加载 我的 phpunit 与 WAMP 工作得很好 当我运行 php m 时 我没有看到 p
  • 无法在 C# 应用程序中为我的线程使用多个处理器组

    根据MSDN 文档 https msdn microsoft com en us library jj665638 v vs 110 aspx and 斯蒂芬 图布 回答 https social msdn microsoft com Fo
  • 如何保持 Asp.Net Core 控制器返回的 json 中属性的大小写?

    我们有一些遗留的 js 代码 它们执行 ajax 调用 并期望将属性命名为 Id Name 等 默认情况下 Asp Net Core 骆驼中的 json 序列化程序会使用返回实体上的属性 但我如何告诉它使用相同的大小写和 C 代码 最好我想
  • 如何在 MATLAB 中查找集合的中心点

    我正在尝试计算medoid http en wikipedia org wiki Medoid在MATLAB中 但是 我不知道该怎么做 我的数据集由多个三维数据点组成 因此具有三个轴的系统中的点云 中心点就是点 其与簇中所有其他对象的平均差
  • C# 应用程序中的全局鼠标钩子[重复]

    这个问题在这里已经有答案了 我想创建一个应用程序 当用户单击第三方 Windows 应用程序的指定按钮时 该应用程序将启动某些操作 我已经读过这里 C 应用程序中的全局鼠标捕获 https stackoverflow com questio
  • 使用 Perforce 代替 Subversion 有什么好处?

    我的团队使用 SVN 已有几年了 我们现在可以选择切换到 Perforce 做出这样的转变会有什么好处 和陷阱 P4 keeps track of your working copy on the server This means tha
  • 为什么事件冒泡在分离的 DOM 元素中不起作用?

    我有一个父母 div 有一个孩子 div 在内存中 未附加到当前文档 我想触发一个CustomEvent关注孩子 但听父母的事件 这是我的代码 var parent document createElement div var child
  • 在 Sublime Text 中添加自定义菜单

    如何添加自定义菜单项崇高文本2 有任何想法吗 我看到有一个主 sublime 菜单文件但不知道如何编辑它 Thanks sublime menu 文件只是 JSON 您可以在您的用户目录中创建一个 Main sublime menu 它将与
  • IOS 上的 PWA 和离线存储

    我们希望开发一款 应用程序 能够为评估人员记录受损汽车的详细信息 这个想法是让少数评估员拥有公司的 iPad 然后 当汽车损坏并返回车场时 他们可以参观拍照 输入一些详细信息 然后将其上传到主系统中 有些车场可能位于没有互联网覆盖的区域 因
  • 使用抽象超类作为Spring数据存储库的参数

    我知道如何实现 spring 数据存储库 创建一个像这样的界面 public interface CountryRepository extends CrudRepository
  • .on() 和 .click() 哪个更快?

    如果我有一个带有删除记录链接的表 那么连接单击事件的最佳方法是什么 这些在幕后的评价是否相同 table on click delete function do stuff or table delete click function do
  • 在 Twig 中使用自定义函数

    在我的模板中 我想输出服务器时区 我的模板有类似的东西 getservertimezone 然后在services yml我拥有的那个捆绑包的配置 my twig extension class My WebsiteBundle Exten
  • Switch 语句如何工作

    switch 语句如何立即下降到内存中的正确位置 对于嵌套的 if 语句 它必须与每个语句进行比较 但对于 switch 语句 它会直接转到正确的情况 这是如何实施的 有很多不同的方法来编译switch语句转换成机器码 以下是一些 The
  • C# 中从字符串数组中删除重复字符串的有效方法

    我想知道一种有效的方法来从 C 中的字符串数组中删除重复项 例如 string a abc xyz abc def ghi asdf ghi xd abc 会变成 string a abc xyz def ghi asdf xd 删除重复条