在 .Net 2.0 中对 IList 进行排序的最佳方法是什么?

2024-03-05

我有一个IList<T>我需要排序,如果可能的话我宁愿不复制列表。我注意到了ArrayList has an Adapter包装传递的列表而不复制它的静态方法,但这需要一个IList我有一个IList<T>。从以下位置投射是否安全System.Collections.Generic.IList<T> to a System.Collections.IList只需使用Adapter method?

请注意,这是 .Net 2.0,因此 LINQ 不是一个选项。


在 Paul Fox 的博客中,我推荐了“如何对 IList 进行排序”的文章:http://foxsys.blogspot.com/2007/06/how-to-sort-generic-ilist.html http://foxsys.blogspot.com/2007/06/how-to-sort-generic-ilist.html

以防万一该博客将来消失,我将在此处复制该帖子:


如何对通用 IList 进行排序

Update

您可以阅读并更新有关的帖子对通用 IList 和 List 进行排序 http://foxsys.blogspot.com/2008/05/how-to-sort-generic-list-sorting-list.html。许多人会更喜欢更新后的帖子中提到的方法。

对通用 IList 进行排序

我试图对通用 IList 进行排序,并找到了一种相当简单的方法。

Step 1

您需要为 IList 中包含的类型实现 IComparable。对于此示例,我将使用一个简单的 Language Dto 类。

public class LanguageDto : IComparable {
 private String name;
 public string Name { get { return name; } set { name = value; } }

 public LanguageDto(string name) {
     this.name = name;
 }

 #region IComparable Members
 public int CompareTo(object obj) {
     if (obj is LanguageDto) {
     LanguageDto language = (LanguageDto)obj;
     return this.name.CompareTo(language.name);
     }
     throw new ArgumentException(string.Format("Cannot compare a LanguageDto to an {0}", obj.GetType().ToString()));
 }
 #endregion
}

STEP 2

对 IList 进行排序。为此,您将使用传入 IList 的 ArrayList.Adapter() 方法,然后调用 Sort 方法。就像这样...

ArrayList.Adapter((IList)languages).Sort();

注意:语言的类型为“IList”

语言应该是您类型的排序列表!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 .Net 2.0 中对 IList 进行排序的最佳方法是什么? 的相关文章

  • 页面中某些超链接控件上的本地化资源未发生变化

    上面是正在开发中的网站的屏幕截图 我们有一个 DropdownList 控件 并在其 SelectedIndexChanged 上进行回发 然后我们更改站点区域性 然后加载相应的资源文件 DropDownList ASP NET 代码
  • LINQ to Entities 区分大小写的比较

    这不是 LINQ to Entities 中区分大小写的比较 Thingies First t gt t Name ThingamaBob 如何使用 LINQ to Entities 实现区分大小写的比较 那是因为你正在使用LINQ 实体最
  • CLR 2.0 与 4.0 性能比较?

    如果在 CLR 4 0 下运行 为 CLR 2 0 编译的 NET 程序会运行得更快吗 应用程序配置
  • 如何使用 NGEN 二进制文件安装 IronPython 2.0?

    有谁知道如何使用 MSI 包安装带有 NGEN 二进制文件的 IronPython 2 0 这IronPython 官方主页 http www codeplex com IronPython据说NGEN选项将大大改善启动时间 但由于某种原因
  • 如何填充 ToolStripComboBox?

    我发现它很难将数据绑定到ToolStripComboBox 好像没有这个ValueMember and DisplayMember特性 怎么绑定呢 访问toolstripcombobox中包装的组合框并访问其ValueMember Disp
  • 从同一个类中的另一个构造函数调用构造函数

    我有一个带有两个构造函数的类 C 这是代码片段 public class FooBar public FooBar string s constructor 1 some functionality public FooBar int i
  • 在视口中查找 WPF 控件

    Updated 这可能是一个简单或复杂的问题 但在 wpf 中 我有一个列表框 我用一个填充数据模板从列表中 有没有办法找出特定的数据模板项位于视口中 即我已滚动到其位置并且可以查看 目前我连接到了 listbox ScrollChange
  • WCF服务健康状况监控

    我刚刚实现了 WCF 服务 目前正在研究服务监控选项 我们的服务器团队目前仅托管 java 服务 希望我们的实例始终运行 因此它可以在该实例的生命周期内收集数据 他们表示将使用我们的 webmon 操作之一来获取统计信息 但我们正在使用每次
  • 为什么 dotnet 的 char.IsLower() 是静态方法?

    这似乎违背了每一个设计准则 接受 T 类型的单个参数的静态方法通常应该只是一个成员方法 这太奇怪了我实际上不得不发布一个StackOverflow问题 https stackoverflow com questions 389100 is
  • 我的 .NET 库列表中缺少 System.Windows.Data

    您好 我想使用 System Windows Data IValueConverter 但是当我尝试在 VS2010 中添加对 System Windows Data 的引用时 我只看到 System Windows Forms 和 Sys
  • MongoDb 注册类映射

    我有以下代码 我希望 MiscellaneousData 覆盖抽象的 MiscellaneousDataBase 然而 IdMemberMap 总是出现空值 使用独立的 正常 类是可行的 if BsonClassMap IsClassMap
  • .NET 标准与 .NET 核心

    我已经了解了 NET Standard 和 NET Core 之间的区别 但我真的不知道区别是什么 或者何时选择 NET Standard 库项目以及何时选择 NET Core 库项目 我读到 NET Standard 是为了确保一组 AP
  • 访问 XAML 中的静态字段

    如何在 xaml 中引用类的静态属性 换句话说 我想做这样的事情 Class BaseThingy public static readonly Style BaseStyle
  • 如何捕获一个 int

    我正在使用 IL 抛出一个 Int32 并捕获它 这只是出于好奇 我并没有试图实现任何目标 所以请不要告诉我抛出异常而不是 int method private hidebysig static void Main string args
  • 如何使用 .NET 以编程方式沙箱进程

    我计划设计一个系统 本质上允许用户在我的机器上运行 PHP Ruby 等脚本代码 我想将它们放入沙箱中 以防止它们访问机器的关键方面 哪些 NET API 可用于此目的 我计划从主流程创建一个子流程 并希望以编程方式从主流程中沙箱该子流程
  • WPF 如何从 DataTemplate 访问控件

    我有一个包含网格的数据模板 网格内有一个组合框
  • ASP.net 出现错误“访问路径被拒绝”。尝试将文件上传到我的 Windows Server 2008 R2 Web 服务器时

    我有一个 ASP NET Web 应用程序 它将文件上传到 Web 服务器上的特定文件夹 本地一切工作正常 但是当我将应用程序部署到 Web 服务器时 我开始收到错误 访问路径 D Attachments myfile doc 被拒绝 我向
  • 在后台进程中访问 WPF FlowDocument

    在后台访问 WPF FlowDocument 我的问题涉及在 WPF 后台访问 UI 对象 我见过几十个示例应用程序 它们都很简单 易于理解 其中 95 告诉你如何显示进度条 这并不是我想要的 我的问题是这样的 我想通过访问 RichTex
  • 任务并行库周围是否有一个接口包装器,以便我可以将其交换用于单元测试?

    I asked 这个问题 https stackoverflow com questions 3362734 unit testing concurrent software what do you do不久以前 我现在知道这是一个坏主意
  • C#动态支持吗?

    看完之后这个帖子 https stackoverflow com questions 2674906 when should one use dynamic keyword in c sharp 4 0k和链接 我还有 2 个问题 问题 1

随机推荐

  • 两个字符串所有可能的LCS(最长公共子序列)

    我们可以用DP 动态规划 求出两个字符串的LCS 最长公共子序列 通过跟踪 DP 表 我们可以获得 LCS 但如果存在不止一艘濒海战斗舰 我们怎样才能获得全部呢 Example string1 bcab string2 abc 这里 ab
  • docker nginx 容器的日志存储在主机的哪里

    I use 默认 nginx 镜像 https hub docker com nginx 和Filebeat读取日志并发送给ELK 两个容器 nginx 容器和 Filebeat 容器 都位于同一主机上 这是 nginx 镜像的 Docke
  • 卸载使用 CUDA 内存的 mex 文件时 MATLAB 崩溃

    我已经尝试解决这个问题有一段时间了 我在使用 CUDA 的 matlab Linux 64 位 中使用 MEX 文件 代码编译并执行得很好 但是当我想卸载 mex 时 例如重新编译它或当 matlab 退出时 matlab 立即崩溃 没有任
  • new File(path) 实际上总是在 android 上创建一个文件?

    我正在尝试检查 Android SD 卡上是否存在文件 所以我这样做 File f new File sdpath DATABASE NAME if f exits create new file else do something 每次实
  • 如何在弹出窗口中动态创建 HTML 元素?

    之前 我使用 window showModalDialog 函数弹出一个窗口 window showModalDialog myHtml 在 myHtml 中 有一些 html 元素 例如文本区域和两个按钮 但现在情况发生了变化 任何htm
  • 查找用户位置

    我正在尝试获取我的天气应用程序的用户位置 我目前无法这样做 并尝试遵循 Google 最后已知位置指南以及https guides codepath com android Retriving Location with LocationS
  • 通过 GitHub 发布 Webhook 触发 AWS CodePipeline

    AWS CodePipeline 现在支持 GitHub WebHook 但默认情况下每次在主分支上推送 更改 代码时 都会触发 CodePipeline 但是 我只希望它在我实际发布版本时运行 因此 我手动配置了自动生成的 GitHub
  • 设置具有多个值的本地化字符串的格式

    我创建了一个本地化字符串 其形式类似于 text key Collected d out of d 并使用以下格式化程序 let numberOfItems 2 let totalNumberOfItems 10 let format NS
  • 在R中过滤掉多列

    假设一个数据集有多个行和列 其中一些列为 0 我的意思是该列中的所有值都是 0 如何过滤掉这些列 我已尝试使用以下代码但无济于事 training data lt Filer function x all x 1 99 0 training
  • Flutter - 轻按时检测 TextField

    我在 Windows 中制作了一个 Flutter 应用程序并且一切正常 但是当我尝试编译到 iOS 时抛出了意外错误 在文本字段中检测到 onTap 不是正确的参数 我不知道会发生什么 在 Windows 中不会返回此错误 反正 有人知道
  • 设置输入高度为父级的 100%

    我在设置输入 键入文本 高度以适合 100 的父母时遇到了一些问题 td 高度 我什至尝试迭代每个输入并使用 jQuery 手动设置它的高度 但这需要相当多的时间 我正在处理的网站有很多单元格 并且仍然无法在 IE 7 和 8 上工作 我有
  • 将表单身份验证添加到 ASP.Net 项目会导致 401.2 未经授权?

    我正在尝试将表单身份验证插入到最初使用 VS 2013 和 ASP Net 4 0 使用无身份验证模板创建的 ASP Net 项目中 我已遵循 MSDN 上的建议 并将其添加到 system web 下的 Web Config 中
  • 添加资源文件到xcode

    我正在尝试将一些新的资源文件添加到由另一个人在另一台 Mac 上构建的项目中 我认为该项目有前人的规定 使用右键单击 gt 将文件添加到 MyProject 不会提供预期的结果 编译项目后 添加的文件在应用程序中不可见 如何在我的项目中添加
  • 最新的 Jersey 示例不起作用

    我已经安装了最新版本的球衣 捆绑版本 2 13 0 以及该版本的示例 然后我尝试了 用于测试 Restful 服务 examples helloworld pure jax rs src main java org glassfish je
  • JavaScript 加载图像的进度

    JS 有没有办法在加载图像时获取加载图像的进度 我想使用HTML5新的Progress标签来显示加载图像的进度 我希望有这样的东西 var someImage new Image someImage onloadprogress funct
  • MongoDB - 大量 MongoCleaner 线程

    不知何故 我的 java 应用程序与 mongodb 通信最终产生了大量名为 MongoCleanerXXX 的停放 睡眠 线程 我认为它来自驱动程序 其数量约为 600 显然数据库存在一些连接问题 在 mongod 重新启动一段时间后确实
  • 我的 httpd.conf 是空的

    我最近在 ubuntu 上安装了 apache2 但我有一个问题 我的 httpd conf 是空的 有人能给我一份 ubuntu 上 apache2 的 httpd conf 的干净副本吗 谢谢 编辑 我看到了你的答案 但在 wampse
  • 如何让dput删除多余的数据?

    我想要一个 SO 问题的最小可重现代码 我一直在使用dput droplevels head df 50 然而 df大约有 4k 条记录 看起来像dput正在为每个人打印一些东西 我需要在问题中显示两个不同的 df 所以不会让我超过 30
  • 打字稿中具有数据水合/脱水的类

    我想分享 React TS 前端和 Node TS 后端之间的 TS 类或接口 问题是 TS 类型在编译时被剥离 所以当我想将类实例转换为 JSON 时我无法使用它们 我想知道是否有任何解决方案可以在静态文件中描述我的对象 生成 TS 类
  • 在 .Net 2.0 中对 IList 进行排序的最佳方法是什么?

    我有一个IList