Подскажите примерно как делать, не понимаю - 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(); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д