Подскажите примерно как делать, не понимаю - C#
Формулировка задачи:
4. Класс Dictionary <TKey, TValue>
Создать текстовый файл для хранения комплектующих и ПК (5 записей):
Код_ID Категория Название Поставщик
Создать класс Ware с соответствующими полями.
Создать коллекцию Dictionary <TKey, TValue> с ключом Код_ID. Заполнить ее из файла. Найти указанный товар по ключу с помощью метода ContainsKey. Отобрать товары по значению (метод ContainsValue), например, Модем.
5. Класс SortedDictionary <TKey, TValue>
Реализовать задачи 4 с использованием SortedDictionary <TKey, TValue>
Это для считывания
Листинг программы
- Dictionary<string, PCC> list = new Dictionary<string, PCC>();
- string s;
- string ID;
- string[] split;
- StreamReader f = new StreamReader("PC.txt");
- while ((s = f.ReadLine()) != null)
- {
- split = s.Split(new Char[] { ',' }); // розбивка на слова
- ID = (split[0].Trim()); //виділення ключа
- list.Add(ID, new PCC(s)); //заповнення колекції
- }
- f.Close();
Решение задачи: «Подскажите примерно как делать, не понимаю»
textual
Листинг программы
- [Serializable]
- public class Ware
- {
- public int WareId { get; set; }
- public string Category { get; set; }
- public string Name { get; set; }
- public string Supplier { get; set; }
- }
- internal class WareStorage<T> where T:IDictionary<int,Ware>
- {
- private readonly IDictionary<int, Ware> _dictionary;
- public WareStorage()
- {
- _dictionary = Activator.CreateInstance<T>();
- }
- public void LoadFromXml(string path)
- {
- var ser = new XmlSerializer(typeof(Ware[]));
- using (var fs = new FileStream(path,FileMode.Open,FileAccess.Read))
- {
- var res = ser.Deserialize(fs) as Ware[];
- foreach (var value in res)
- {
- if (!_dictionary.ContainsKey(value.WareId))
- _dictionary.Add(new KeyValuePair<int, Ware>(value.WareId, value));
- }
- }
- }
- public void SaveToXml(string path,Ware[] wares)
- {
- var ser = new XmlSerializer(typeof(Ware[]));
- using (var fs = new FileStream(path, FileMode.Create, FileAccess.Write))
- {
- ser.Serialize(fs, wares);
- }
- }
- public Ware FindByKey(int wareId)
- {
- if(!_dictionary.ContainsKey(wareId))
- throw new Exception("Комплектущиего с таким Id не найдено");
- return _dictionary[wareId];
- }
- public Ware[] FindByCategory(string categoryName)
- {
- return _dictionary.Where(x => x.Value.Category.Equals(categoryName)).Select(x => x.Value).ToArray();
- }
- }
- static void Main(string[] args)
- {
- //var wares = new List<Ware>();
- //for (int i = 0; i < 5; i++)
- //{
- // wares.Add(new Ware {Category = "Категория " + i, Name = "Компл." + i, Supplier = "Постащик" + i, WareId = i + 1});
- //}
- var storage = new WareStorage<Dictionary<int,Ware>>();
- storage.LoadFromXml(@"C:\wares.xml");
- var ware = storage.FindByKey(4);
- var wareByCat = storage.FindByCategory("Категория " + 1);
- //storage.SaveToXml(@"C:\wares.xml", wares.ToArray());
- Console.ReadKey();
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д