我想排序一个List<string>
,但同时排序float[]
数组:这是相关的值。 (我知道这是糟糕的设计,这是历史性的)。因此,无论何时在List中交换两个项目,我都希望数组中索引的值也交换。有两种方法可以做到这一点:http://msdn.microsoft.com/en-us/library/aa311223%28v=vs.71%29.aspx 但是我找不到任何一个List和一个数组:有没有这样的方法?.NET排序列表<>与关联数组
回答
您可以使用Zip
(.NET 4.0及更高版本)来合并列表和数组,并对结果执行排序。
更新:
由于您使用的是.NET 3.5,你可以使用Array.Sort
,因为你已经链接到,第一列表转换为数组:
var stringArray = myStringList.ToArray();
Array.Sort(stringArray, myFloatArray);
的方式我通常会这样做,但是,将创建一个类型为string
和float
,并将其用于泛型集合进行排序。
有趣,但我们很遗憾使用了.NET3.5。 – user968698 2012-02-27 11:25:56
@ user968698 - 答案更新为3.5个选项 – Oded 2012-02-27 11:34:29
Oded击败了我:我也打算建议将列表复制到一个SortedList<string, float>
,然后使用.Keys
获取排序的列表和.Values
以按相应的顺序返回浮点数。这些不会返回实际的列表和数组,因此您可能需要.ToList
和.ToArray
这些值,除非您可以使用结果作为IList
或IEnumerable
来代替。
您也可以编写一个自定义的排序功能,将两个列表一起管理。或者只是咬紧牙关并重构代码以妥善保存这些内容!
或者,您可以ToArray
您的列表并使用您在问题中提供的示例。当你完成后,然后new List<string>(stringArray)
。
不是我个人解决问题的方式,而是一个有效的选择。
- 1. 排序数组列表<object>
- 2. 排序列表<>排序依据列表<string>计数
- 3. 排序列表<MyObject>
- 4. 排序列表<String[]>
- 5. 按值降序排列关联数组
- 6. 按照键降序排列关联数组=>值
- 7. Bash排序表关联数组
- 8. PHP关联数组排序
- 9. 排序关联数组PHP
- 10. 排序关联数组
- 11. 排序关联数组
- 12. js排序关联数组
- 13. 排序列表<DateTime>降序
- 14. 如何按时间顺序排列PHP数组与关联?
- 15. 阵列与关联数组
- 16. 与列表<>参数
- 17. 排序定义列表(<dl>)
- 18. DataGridView和列表<T>和排序
- 19. 排序地图列表<String,String>
- 20. 使用Ajax排序列表<Elements>
- 21. 如何排序列表<? extends T>
- 22. 关联数组排序数字
- 23. 与列表<>
- 24. 与列表<>
- 25. 排序列表<keyValuePair <字符串,字符串>>
- 26. 排序列表<KeyValuePair <int, string>>大写和小写
- 27. 排序列表<地图<字符串,对象>>
- 28. 如何排序地图<YearMonth,列表<LocalDate>>与Java 8 Lambda和流
- 29. 关于列表<Object>的ASPX和排序
- 30. 排序或顺序排序列表<T> [] c#使用Linq
如果必须与'float []'配对,那么'List'没有太大的好处。坦率地说,我要么使用'string []'并使用双数组排序,或者(更可能)我会创建一个由'string'和'float组成的类型(可能是'struct') ',并且可以随意使用'List '(和'.Sort()')。 –
2012-02-27 11:14:02