草庐IT

nested排序

全部标签

c# - 在 C# 中按字母顺序对数组进行排序

希望有人能帮忙。我创建了一个可变长度数组,它将接受多个名称输入。我现在想按字母顺序对数组进行排序并将其返回到控制台屏幕。我认为Array.Sort(names);会为我做这件事,但我抛出了一个异常。我一直在查看笔记、示例和在线内容,但似乎没有什么与我正在做的相符。到目前为止,我已经完成了以下工作。我快要在这里扯头发了!PS我已经尝试解决这个问题好几个小时了,我已经30多岁了,正在努力学习自己,所以请不要只说“做你的作业”我已经尝试解决这个问题但不能,所以我需要有人来解释我哪里出错了。今天是星期天,我正在努力做额外的工作,但没有笔记来准确地说明这一点usingSystem;usingSy

c# - 如何使用重复键对列表进行排序?

我有一组元素/键,我正在从两个不同的配置文件中读取它们。因此键可能相同,但具有与每个键关联的不同值。我想按排序顺序列出它们。我能做什么?我尝试使用SortedList类,但它不允许重复键。我该怎么做?例如,假设我有3个元素,键分别为1、2、3。然后我又得到一个具有键2(但值不同)的元素。然后我希望在现有key2之后但在3之前插入新key。如果我再次找到具有key2的元素,那么它应该在最近添加的key2之后。请注意,我使用的是.NET2.0 最佳答案 对于这种类型的事情,我更喜欢使用LINQ:usingSystem.Linq;...v

c# - 按时间对日期时间列表排序

我有一个日期时间列表,如果可能的话,我想使用lambda表达式对其进行排序。我的list:6/19/19798:00:00AM5/5/19807:00:00PM10/20/19825:00:00PM1/4/19846:00:00AM输出应按以下顺序:1/4/19846:00:00AM6/19/19798:00:00AM10/20/19825:00:00PM5/5/19807:00:00PM 最佳答案 简单地说,OrderByTimeOfDay:varlist=dateList.OrderBy(x=>x.TimeOfDay).ToLi

c# - 如何按降序对 DateTime 对象的 ArrayList 进行排序?

如何按降序对DateTime对象的ArrayList进行排序?谢谢。 最佳答案 首先,除非您坚持使用框架1.1,否则您不应该使用ArrayList根本。您应该使用强类型泛型List相反。对于自定义排序,Sort重载了采用比较器的方法。通过反转常规比较,您可以按降序排序:list.Sort(delegate(DateTimex,DateTimey){returny.CompareTo(x);});更新:使用C#3中的lambda表达式,委托(delegate)更容易创建:list.Sort((x,y)=>y.CompareTo(x))

c# - 不同 CLR 版本上的不同排序结果

在C#中比较字符串时,不同的clr在Windows7sp1x64上给出不同的结果。这是示例代码:ListmyList=newList();myList.AddRange(new[]{"!-","-!","&-l","&l-","-(","(-","-*","*-",".-","-.","/'","-/"});myList.Sort();Console.WriteLine(Environment.Version);myList.ForEach(Console.WriteLine);Console.WriteLine();Console.WriteLine(string.Compare("

c# - nest yields to return IEnumerable<IEnumerable<T>> with lazy evaluation

我写了一个LINQ扩展方法SplitBetween类似于String.Split.>newList(){3,4,2,21,3,2,17,16,1}>.SplitBetween(x=>x>=10)[3,4,2],[3,2],[],[1]来源://partitionsequenceintosequenceofcontiguoussubsequences//behaveslikeString.SplitpublicstaticIEnumerable>SplitBetween(thisIEnumerablesource,FuncseparatorSelector,boolincludeSepa

c# - "nested if"与使用 F# 的 "if and"性能

以下代码导致slow1=1323ms、slow2=1311ms和fast=897ms。这怎么可能?此处:Nestedornotnestedif-blocks?他们提到Anymoderncompiler,andbythatImeananythingbuiltinthepast20years,willcompilethesetothesamecode.lets=System.Diagnostics.Stopwatch()letmutablea=1s.Start()foriin0..1000000000doifi 最佳答案 我已经从ild

c# - 在编辑器中对枚举项进行排序

有人知道在代码编辑器中对枚举项进行排序的方法吗,例如使用resharper或其他VS插件(即按字母顺序或整数值对项目排序)?在一个项目中,我有一些巨大的枚举,里面有未排序的标签,对它们进行排序有助于提高可读性。编辑:只是指出,因为很多人都提到过这一点,所以我完全知道在编译时分配给枚举项的“自动值”,如果它们没有明确的值的话。为了更清楚一点,举两个例子:publicenumColors{//////Yellowcolor///Yellow,//////Greencolor///Green,//////Bluecolor///Blue,//////Redcolor///Red}->我们可能

c# - 为什么 volatile 和 MemoryBarrier 不阻止操作重新排序?

如果我正确理解volatile和MemoryBarrier的含义,那么下面的程序将永远无法显示任何结果。每次我运行它时,它都会捕获写入操作的重新排序。我在Debug或Release中运行它并不重要。将它作为32位或64位应用程序运行也没有关系。为什么会这样?usingSystem;usingSystem.Threading;usingSystem.Threading.Tasks;namespaceFlipFlop{classProgram{//Declaringthesevariablesasvolatileshouldinstructcompilerto//flushallcache

c# - 内存重新排序会导致 C# 访问未分配的内存吗?

据我了解,C#是一种安全语言,不允许访问未分配的内存,除非通过unsafe关键字。但是,它的内存模型允许在线程之间存在不同步访问时重新排序。这会导致竞争危险,其中对新实例的引用似乎在实例完全初始化之前可用于竞争线程,并且是双重检查锁定的一个众所周知的问题。ChrisBrumme(来自CLR团队)在他们的MemoryModel中解释了这一点文章:Considerthestandarddouble-lockingprotocol:if(a==null){lock(obj){if(a==null)a=newA();}}Thisisacommontechniqueforavoidingaloc