草庐IT

sort_list

全部标签

c# - 从 C# List<T> 中删除项目是否会保留其他项目的订单?

最近,我写了很多看起来像这样的代码:ListmyList=newList();...for(inti=0;i我只是变得有点偏执,也许List在删除时不保留对象顺序。我不太了解C#规范,无法确定。有人可以验证我是不是在找这种模式的麻烦吗?编辑:也许我应该澄清一下,上面是一个非常简化的例子,如果需要删除该项目会发生更多事情,所以我不认为List.RemoveAll()在这里非常适用。虽然这是一个很好的功能。我在if()中添加了评论上面的block特别提到了这一点。 最佳答案 List添加、插入和删除时将始终保持相对顺序;如果没有,它就不

c# - 在 C# 中将 List<string> 转换为 List<int>

我想转换一个List到List.这是我的代码:voidConvert(ListstringList){ListintList=newList();for(inti=0;i 最佳答案 您可以使用List.ConvertAll(...)而不是使用LINQListintList=stringList.ConvertAll(int.Parse); 关于c#-在C#中将List转换为List,我们在StackOverflow上找到一个类似的问题: https://sta

c# - List<string> 简单分组和计数?

我有一个非常简单的List每个项目包含很多单个字符的设置(IEaforeach将控制台输出为“a”“k”“p”等)我想做的是能够对项目进行分组,并计算每个项目出现的次数,这样我就会得到类似于以下的输出:a-2t-3y-3关于执行此操作的最佳方法的任何提示?如果有任何帮助,我正在使用.Net4。 最佳答案 (鉴于每个条目都是一个字符,顺便说一下,有什么理由没有List吗?)怎么样://TogetaDictionaryvarcounts=list.GroupBy(x=>x).ToDictionary(g=>g.Key,g=>g.Coun

c# - 将字符串数组加载到 List<int> 中最优雅的方法是什么?

考虑一个包含数值的字符串数组:string[]intArray={"25","65","0"};将数字加载到List中的最优雅的方法是什么?不使用for或while遍历intArray? 最佳答案 您可以使用Enumerable.Select方法ListintList=intArray.Select(str=>int.Parse(str)).ToList(); 关于c#-将字符串数组加载到List中最优雅的方法是什么?,我们在StackOverflow上找到一个类似的问题:

c# - 为什么要在 List<T>.AddRange(IEnumerable<T>) 中添加额外的副本?

我正在查看System.Collections.Generic.List的开源代码.AddRange(IEnumerable)方法如下所示:publicvoidAddRange(IEnumerablecollection){Contract.Ensures(Count>=Contract.OldValue(Count));InsertRange(_size,collection);}和InsertRange(int,IEnumerable)方法看起来像这样:publicvoidInsertRange(intindex,IEnumerablecollection){if(collecti

c# - 是否有等同于 C++ std::partial_sort 的 C#?

我正在尝试为可通过多种条件排序的数据集实现分页算法。不幸的是,虽然其中一些标准可以在数据库级别实现,但有些必须在应用程序级别完成(我们必须与另一个数据源集成)。我们有一个分页(实际上是无限滚动)需求,并且正在寻找一种方法来最大程度地减少每次分页调用时在应用程序级别对整个数据集进行排序的痛苦。进行部分排序的最佳方法是什么,只对列表中绝对需要排序的部分进行排序?是否有等同于C++的std::partial_sort的.NET库中可用的函数?我应该如何解决这个问题?编辑:这是我想要的示例:假设我需要根据某些排序标准获取1000个元素集中的第21-40个元素。为了加快排序,并且由于无论如何我每

c# - List.Contains() 的循环实现看起来比内置的更快。是吗?如果是这样,为什么?

(Thisquestionarisesfromadiscussionthatstartedhere)我正在比较寻找true的时间List中的值使用List.Contains()与那些用于手卷循环。我看到的结果与其他人报告的结果不同。我已经在几个系统上试过了,在我试过的所有系统上,循环似乎快了2到3.5倍。这些系统的范围从使用.Net4运行XP的5年前笔记本电脑到最近运行Windows8和.Net4.5的PC。其他人报告了不同的结果,即List.Contains()与循环的速度大致相同或略快。这是我的测试代码。usingSystem;usingSystem.Collections.Gen

c# - Entity Framework 6 : Adding child object to parent's list vs. 将子项的导航属性设置为父项

我有一个现有数据库,其中包含两个表MailServers和MailDomains。MailDomains的外键列MailServerId指向MailServers中的Id主键列。所以我们这里是一对多的关系。我关注了thisarticle并通过实体数据模型向导中的“代码优先从数据库”模型创建了我的EntityFrameworkPOCO。这产生了以下两个C#类:publicpartialclassMailServer{publicMailServer(){MailDomains=newHashSet();}publicintId{get;set;}publicvirtualICollect

c# - 具有默认值的 XmlSerializer 和 List<T>

我在序列化和反序列化具有List类型成员的类时观察到一个奇怪的行为在构建时填充了默认值。与基于数组的属性不同,类型为List的属性不会在XmlSerializer反序列化时被清空。这是我的代码:publicclassProgram{publicclassConfig{publicConfig(){Test1=newList(){"A","B"};Test2=newString[]{"A","B"};}publicListTest1{get;set;}publicstring[]Test2{get;set;}}publicstaticvoidMain(){XmlSerializerxml

c# - 在 Protobuf.NET 中序列化 List<object> (其中对象支持原语)?

如何使用protobuf-net序列化这样的对象:publicclassMyObject{publicstringKey{get;set;}publicListValues{get;set;}}当我尝试使用TypeModelprotobuf-net对此进行序列化时,抛出一个错误,指出它不知道如何序列化System.Object。现在我知道Values只会包含基元(int、string、float、DateTime等)。那么如何让protobuf-net知道这一点呢? 最佳答案 在任何意义上,这在纯ProtoBuf中都是不可行的。Pr