Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
2 / 2 / 0
Регистрация: 01.11.2018
Сообщений: 169
1

Организация поиска

27.02.2020, 20:10. Показов 1592. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
C#
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
*  организовать поиск по Id номеру 
 * организовать поиск по Id номеру (по ключу)
 * 
 
 */
 
    [Serializable]
    class MyWork
    {
       
        public int Id { get; set; }
        public string Nimi { get; set; }
        public float Palkka { get; set; }
 
        public MyWork() { }
 
        public MyWork(int id, string nimi, float palkka)
        {
            Id = id;
            Nimi = nimi;
            Palkka = palkka;
        }
 
 
        public void HaeTyontekija(int id)
        {
            if (Id == id)
            {
                Console.WriteLine("id: " + Id + " nimi: " + Nimi + " palkka: " + Palkka);
                
            }
            else
            {
                Console.WriteLine("Työntekijää ei löytynyt id-numerolla " + id);
            }
        }
 
        public override string ToString()
        {
            return ($" id: {Id} nimi: {Nimi} palkka: {Palkka}");
        }
    }
}
class Ohejlma
{
    static void Main(string[] args)
    {
        string tiedosto = "tyontekijat.dat";
 
        if (!File.Exists(tiedosto))
        {
            File.Create(tiedosto);
        }
             
 
        Hashtable table = new Hashtable();
 
 
        Console.WriteLine("Anna kolmen työntekijan tiedot (id, nimi, palkka): ");
 
        for (int i = 0; i < 3; i++)
        {
            Console.WriteLine("Anna id:");
            int id = Convert.ToInt32(Console.ReadLine());
 
            Console.WriteLine("Anna nimi:");
            string nimi = Console.ReadLine();
 
            Console.WriteLine("Anna palkka:");
            float palkka = (float)Convert.ToDouble(Console.ReadLine());
 
            MyWork My = new MyWork(id, nimi, palkka);
 
            table.Add(id, My);
 
        }
 
        ////создаем объект BinaryFormatter
        BinaryFormatter formatter = new BinaryFormatter();
 
        //получаем поток, куда будем записывать сериализованный объект
        using (FileStream fs = new FileStream(tiedosto, FileMode.OpenOrCreate))
        {
            formatter.Serialize(fs, table);
 
        }
 
        //десериализация из файла 
        using (FileStream fs = new FileStream(tiedosto, FileMode.OpenOrCreate))
        {
            table = (Hashtable)formatter.Deserialize(fs);
 
        }
 
        Console.WriteLine(" Что находится в хеш табл ");
 
    
        foreach (object key in table.Keys)
        {
           //Console.WriteLine("Ключ=" + key + " , значение=" + table[key]);
            Console.WriteLine(table[key]);
           
 
        }
 
        MyWork test = new MyWork();
        test.HaeTyontekija(2);
 
 
        Console.ReadKey();
    }
Добавлено через 2 минуты
Поиск не могу осуществить.
Прошу только без LINQ
Если есть возможность, организовать как можно проще.
Для начала хоть самому понять

Где еть примеры данной реалезации?

Добавлено через 1 час 52 минуты
Но есть ошибки, он по несколько раз выдаёт что ID не найден


C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
  Console.WriteLine("Anna työntekijän id:");
            int haettavaId = Convert.ToInt32(Console.ReadLine());
 
            foreach (object key in table.Keys)
            {
                if (table[key] == table[haettavaId])
                {
                    Console.WriteLine($" {table[key]}");
                   
                }
                else
                {
                    Console.WriteLine("Työntekijää ei löytynyt id-numerolla " + haettavaId);
                }
               
            }
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.02.2020, 20:10
Ответы с готовыми решениями:

Организация поиска и выбора информации
Известны данные о цене и тираже каждого из 15 журналов. Найти среднюю стоимость журналов, тираж...

Организация поиска и выбора информации
Решить задачу в консольном режиме :

Организация поиска товара определенного типа
Есть 3 класса (игрушка, книга, спорт. эквип), наследуемые от абстрактного класса (товар). Нужно...

Правильная организация поиска в SortedDictionary (метод ContainsValue())
Здравствуйте, уважаемые Форумчане! В созданной коллекции SortedDictionary необходимо найти элемент...

2
2638 / 1566 / 853
Регистрация: 23.02.2019
Сообщений: 3,876
28.02.2020, 21:01 2
Лучший ответ Сообщение было отмечено Vo_Va как решение

Решение

Для поиска в хешбалице (или dictionary) не нужен цикл, достаточно просто запросить объект по некому ключу, и если такого найдено не будет, то вернётся null, например:
C#
1
2
3
4
5
6
7
8
9
10
var testKey = 51;
 
if (hashtable[testKey] == null)
{
    Console.WriteLine($"Объекта с ключом {testKey} не существует в хештаблице."); ;
}
else
{
    Console.WriteLine($"Объект найден: { hashtable[testKey]}");
}
1
2 / 2 / 0
Регистрация: 01.11.2018
Сообщений: 169
29.02.2020, 15:38  [ТС] 3
Спасибо. Где же ты был раньше
0
29.02.2020, 15:38
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.02.2020, 15:38
Помогаю со студенческими работами здесь

Алгоритм бинарного поиска (поиска делением пополам)
Необходимо реализовать алгоритм бинарного поиска (поиска делением пополам). Алгоритм в качестве...

Организация поиска в списке. Исправить ошибку в методе поиска
Сколько бы у меня желания не было, найти ее не могу. Может кто помочь? Заранее спасибо... #include...

организация поиска
Всем привет, помогите организовать поиск файлов. допустим есть папка c:\123\ в нем 100 файлов,...

Организация поиска
Всем доброго времени суток! Хотелось бы получить консультацию и помощь. Я хочу организовать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru