Maison  >  Article  >  développement back-end  >  Tutoriel d'exemple d'optimisation d'opérations de base C#

Tutoriel d'exemple d'optimisation d'opérations de base C#

零下一度
零下一度original
2017-06-24 09:56:211591parcourir

Les opérations de base telles que l'interrogation et la suppression de données sont la base de tout langage de programmation. Par conséquent, j'ai étudié les types d'opérations de données les plus couramment utilisés en C# et pris des notes

Requête de liste lors du traitement de données relativement volumineuses. , utilisez la classe HashSet, car List est basée sur des opérations de table linéaires. Cependant, elle contient une recherche binaire (BinarySearch). Par conséquent, vous pouvez également la trier après l'avoir stockée, puis utiliser la recherche binaire. Mais il peut également être conçu comme ceci : Dictionary> Utilisez la fonctionnalité de requête de recherche efficace du Dictionary pour rechercher des objets List. > HashSet est une classe de collection qui ne contient pas de types répétés. Cette collection est basée sur des valeurs de hachage et ses opérations sont très rapides. Par rapport à HashTable, cette classe de collection ne contient qu'un seul paramètre de type. non basé sur des clés. Les paires de valeurs sont utilisées pour stocker les éléments de recherche. Si vous devez déterminer si l'élément existe, il vous suffit d'appeler la méthode Contains()

Complexité de recherche de liste O(n), Complexité de recherche HashSet. O (1)


Opérations de suppression et d'ajout de la classe Dictionary :

Par défaut, si l'élément n'est pas trié, la position de l'élément ajouté est la position de l'élément supprimé

Si. s'il est trié, la position de l'élément ajouté sera toujours la position de l'élément avant qu'il ne soit trié.

static void Main(string[] args)
        {
            Dictionary<int, int> _dic = new Dictionary<int, int>();

            _dic.Add(3, 3);
            _dic.Add(1, 1);
            _dic.Add(2, 2);
            _dic.Add(6, 6);

            Console.WriteLine("未经排序:");foreach (var k in _dic)
            {
                Console.WriteLine(k.Key + "   " + k.Value);
            }var dic_sort = from dic in _dic orderby dic.Key select dic;
            Console.WriteLine("未经处理:");foreach (var k in dic_sort)
            {
                Console.WriteLine(k.Key + "   " + k.Value);
            }

            Console.WriteLine("经过删除添加处理:");
            _dic.Remove(2);
            _dic.Add(4, 4);foreach (var k in _dic)
            {
                Console.WriteLine(k.Key + "   " + k.Value);
            }

            Console.Read();
        }
Vous. pouvez aussi le tester vous-même...

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn