Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как отсортировать объекты в Collection по условию?
|
|||
|---|---|---|---|
|
#18+
Как отсортировать объекты в Collection по условию? Следующая проблема: есть у меня в коллекции набор объектов некоторого пользовательского класса, например class MyClass { public int id; public String Name; } мне надо отсортировать эти объекты в порядке возрастания значений ихнего свойства id. Как справиться с этой проблемой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2004, 17:21 |
|
||
|
Как отсортировать объекты в Collection по условию?
|
|||
|---|---|---|---|
|
#18+
либо написать свой класс MyClassComparer, который имплементирует IComparer, и передать его методу ArrayList.Sort, либо имплементировать в MyClass IComparable. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2004, 17:40 |
|
||
|
Как отсортировать объекты в Collection по условию?
|
|||
|---|---|---|---|
|
#18+
либо написать свой класс MyClassComparer, который имплементирует IComparer, и передать его методу ArrayList.Sort, либо имплементировать в MyClass IComparable. Я не совсем понимаю Это, если вас не затруднит, напишите какой-нибуть небольшой примерчик. Пожалуйста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2004, 09:18 |
|
||
|
Как отсортировать объекты в Collection по условию?
|
|||
|---|---|---|---|
|
#18+
[src]class MyClass : IComparer { public int id; public string name; public int Compare(object x, object y) { int idCmp = 0; int nameCmp = 0; MyClass a = (MyClass) x; MyClass b = (MyClass) y; if (a.id < b.id) { idCmp = -1; } if (a.id == b.id) { idCmp = 0; } if (a.id > b.id) { idCmp = 1; } if (idCmp != 0) { return idCmp; } nameCmp = String.Compare(a.name, b.name); return nameCmp; } public MyClass(int id, string name ) { this.id = id; this.name = name; } public MyClass() { } } /[src] Пример вашего класса с возможностью сортировки только не только по одному id но и по name - если id совпадает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2004, 10:27 |
|
||
|
Как отсортировать объекты в Collection по условию?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. Ссори. Да использовать можно через метод sort - myArrayList.Sort(new MyClass()); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2004, 10:29 |
|
||
|
Как отсортировать объекты в Collection по условию?
|
|||
|---|---|---|---|
|
#18+
По-моему проще и естественне было бы имплиментировать IComparable и вызывать ArrayList.Sort(), а не имплементировать IComparer и из-за этого создавать "левый" объект Типа MyClass, только для того чтобы скормить его ArrayList.Sort(IComparer) Имплементация IComparer оправдана тогда, когда, для одного типа необходимо параметризировать сортировку. Например. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2004, 13:13 |
|
||
|
Как отсортировать объекты в Collection по условию?
|
|||
|---|---|---|---|
|
#18+
Коррекция Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2004, 13:15 |
|
||
|
Как отсортировать объекты в Collection по условию?
|
|||
|---|---|---|---|
|
#18+
Большое спасибо! Терперь все понятно. Не примите за наглость, но хотелось бы еще знать - как НАЙТИ елемент в коллекции по определенному условию? Ну например содержится в коллекции куча объктов моего класса, и мне нужно найти тот из них у которого например id = 5. Как делается такой поиск? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2004, 09:39 |
|
||
|
Как отсортировать объекты в Collection по условию?
|
|||
|---|---|---|---|
|
#18+
ignaci Не примите за наглость. Cкладывайте ваши объекты в DataTable а потом сортируйте и выбирайте с помощью DataView как душе угодно. Хотя, если потренироваться охота, то можете сами свое написать... a la multy Index SortedList. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2004, 11:04 |
|
||
|
Как отсортировать объекты в Collection по условию?
|
|||
|---|---|---|---|
|
#18+
>хотелось бы еще знать - как НАЙТИ елемент в коллекции по определенному условию? Ну например содержится в коллекции куча объктов моего класса, и мне нужно найти тот из них у которого например id = 5. Как делается такой поиск? Просто "пробежаться" по всем объектам Collection и найти необходимый. Может быть не так быстро (хотя достаточно быстро для обычного применения), зато работает железно при любых условиях поиска, особенно тогда когда например Collection объектов не отсортирован (если не изменяет склероз то это единственный способ поиска если коллекция не отсортирована) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2004, 11:52 |
|
||
|
Как отсортировать объекты в Collection по условию?
|
|||
|---|---|---|---|
|
#18+
Можно примерно вот так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. Код: plaintext 1. 2. 3. 4. 5. и т.д :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2004, 12:58 |
|
||
|
|

start [/forum/topic.php?fid=20&msg=32535195&tid=1439096]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
54ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 271ms |
| total: | 416ms |

| 0 / 0 |
