List sort & find - C#

Узнай цену своей работы

Формулировка задачи:

Доброе утро! Не знаю в ту ли ветку пишу, так что не пинайти До вечера надо мне узнать! 1) Как реализовать Сорт листа, по признаку (С исп интерфейса IComparer) Все уже написано, просто в осн програме было для array.sort( namemas, new MyClass.SortByName() ) SorttByname я сам и прописал в myclass Как это выглядит для листа, оч прошу помочь! 2)Как реализовать Поиск по признаку? (В листе есть стринг имени и инт аммо)
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.IO;
  6. using System.Collections;
  7. namespace ConsoleApplication1
  8. {
  9. class Monster
  10. {
  11. private string name;
  12. private int ammo, health;
  13. public Monster(int health, int ammo, string name)
  14. {
  15. this.health = health;
  16. this.ammo = ammo;
  17. this.name = name;
  18. }
  19. public int Ammo
  20. {
  21. get { return ammo; }
  22. set
  23. {
  24. if (value > 0) ammo = value;
  25. else ammo = 0;
  26. }
  27. }
  28. public string Name
  29. { get { return name; } }
  30. public void Passport()
  31. {
  32. Console.WriteLine("Monster {0} \t health = {1} ammo = {2} ", name, health, ammo);
  33. }
  34. public class SortByName : IComparer
  35. {
  36. int IComparer.Compare(object ob1, object ob2)
  37. {
  38. Monster m1 = (Monster)ob1;
  39. Monster m2 = (Monster)ob2;
  40. return String.Compare(m1.Name, m2.Name);
  41. }
  42. }
  43. public class SortByAmmo : IComparer
  44. {
  45. int IComparer.Compare(Object ob1, Object ob2)
  46. {
  47. Monster m1 = (Monster)ob1;
  48. Monster m2 = (Monster)ob2;
  49. if (m1.Ammo > m2.Ammo) return 1;
  50. else if (m1.Ammo < m2.Ammo) return -1;
  51. else return 0;
  52. }
  53. }
  54. }
  55.  
  56. class Program
  57. {
  58. static void Main(string[] args)
  59. {
  60. int i = 0, ammo, health;
  61. string name;
  62. List<Monster> stado = new List<Monster>();
  63. for (i = 0; i < 2; ++i)
  64. {
  65. Console.WriteLine("Введи хэлз ");
  66. health = int.Parse(Console.ReadLine());
  67. Console.WriteLine("Введи Аммо ");
  68. ammo = int.Parse(Console.ReadLine());
  69. Console.WriteLine("Введи имя ");
  70. name = Console.ReadLine();
  71. stado.Add(new Monster(health, ammo, name));
  72. }
  73. foreach (Monster elem in stado) elem.Passport();
  74. /*Console.WriteLine("ПО имение");
  75. Array.Sort(stado, new Monster.SortByName());
  76. foreach (Monster elem in stado) elem.Passport();
  77. Console.WriteLine("По амону");
  78. Array.Sort(stado, new Monster.SortByAmmo());
  79. foreach (Monster elem in stado) elem.Passport();*/
  80. }
  81. }
  82. }

Решение задачи: «List sort & find»

textual
Листинг программы
  1. stado.Sort(new Monster.SortByName());
  2. //Здесь написано Monster.SortByName, а не просто SortByName
  3. //потому что класс SortByName вложен в класс Monster

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.333 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут