Отсортировать Json файл методом пузырька - C#
Формулировка задачи:
Есть Json файл, надо его отсортировать по Kod методом пузырька
[ { "KC": "3", "Kod": "114521226", "Name": "База по ремонту бурового оборудования", "global_id": 63739355, "system_object_id": "114521226" }, { "KC": "6", "Kod": "143314139", "Name": "Устройства вспомогательные и оборудование для подготовки образцов полимерных материалов", "global_id": 63741226, "system_object_id": "143314139" }, { "KC": "5", "Kod": "143020544", "Name": "Инструменты и принадлежности для вычислительной техники", "global_id": 63740707, "system_object_id": "143020544" }, { "KC": "2", "Kod": "142929556", "Name": "Агрегаты на базе червячных машин для переработки резиновых смесей", "global_id": 63735873, "system_object_id": "142929556" }, { "KC": "8", "Kod": "142926571", "Name": "Оборудование для химической обработки", "global_id": 63740075, "system_object_id": "142926571" }, ]
Решение задачи: «Отсортировать Json файл методом пузырька»
textual
Листинг программы
using System; using System.Collections.Generic; using Newtonsoft.Json; using Newtonsoft.Json.Linq; namespace CyberForum { public class JArraySortingV2 { public static void Main(string[] args) { const string jsonText = @" [ { ""KC"": ""3"", ""Kod"": ""114521226"", ""Name"": ""База по ремонту бурового оборудования"", ""global_id"": 63739355, ""system_object_id"": ""114521226"" }, { ""KC"": ""6"", ""Kod"": ""143314139"", ""Name"": ""Устройства вспомогательные и оборудование для подготовки образцов полимерных материалов"", ""global_id"": 63741226, ""system_object_id"": ""143314139"" }, { ""KC"": ""5"", ""Kod"": ""143020544"", ""Name"": ""Инструменты и принадлежности для вычислительной техники"", ""global_id"": 63740707, ""system_object_id"": ""143020544"" }, { ""KC"": ""2"", ""Kod"": ""142929556"", ""Name"": ""Агрегаты на базе червячных машин для переработки резиновых смесей"", ""global_id"": 63735873, ""system_object_id"": ""142929556"" }, { ""KC"": ""8"", ""Kod"": ""142926571"", ""Name"": ""Оборудование для химической обработки"", ""global_id"": 63740075, ""system_object_id"": ""142926571"" }, ]"; JArray jsonArray = JArray.Parse(jsonText); int itemsCount = jsonArray.Count; string[] codes = new string[itemsCount]; int[] indices = new int[itemsCount]; for (int index = 0; index < itemsCount; ++index) { codes[index] = (string)jsonArray[index]["Kod"]; indices[index] = index; } BubbleSort(codes, indices, StringComparer.OrdinalIgnoreCase); for (int index = 0; index < itemsCount; ++index) { Console.WriteLine("cycle index: {0}\tarray index: {1}", index, indices[index]); Console.WriteLine(jsonArray[indices[index]]); } } private static void BubbleSort<TKey, TValue>(TKey[] keys, TValue[] values, IComparer<TKey> comparer) { if (keys.Length != values.Length) { // error! arrays' length does not match! throw new ArgumentException("Oops! Invalid arrays' length."); } int length = keys.Length; if (length == 1) { // nothing to sort - one item in array return; } for (int index = 0; index < length; ++index) { for (int inner = length - 1; inner > index; --inner) { int comparison = comparer.Compare(keys[inner], keys[inner - 1]); if (comparison < 0) { Swap(ref keys[inner], ref keys[inner - 1]); Swap(ref values[inner], ref values[inner - 1]); } } } } private static void Swap<TValue>(ref TValue left, ref TValue right) { TValue temp = left; left = right; right = temp; } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д