sortinger un tableau de chaînes en utilisant LINQ

J’ai un tableau de chaînes déclarer comme ci-dessous

ssortingng[][] data = new ssortingng[3][]; ssortingng[] name = new ssortingng[10]; ssortingng[] contact = new ssortingng[10]; ssortingng[] address = new ssortingng[10]; 

Après avoir rempli les données pour le nom, l’adresse et le contact, l’adresse peut être une chaîne vide dans certaines données. Après cela, je l’assigne à des données de tableau de chaînes.

 data[0] = name; data[1] = contact; data[2] = address 

Comment je peux sortinger le tableau de chaînes par nom en utilisant LINQ. J’essaie data = data.orderby (y => y [0]). ToArray ();

mais cette sorte changera la séquence du tableau de chaînes. Supposons que data [0] soit le nom du magasin mais que, après le sorting, il devienne l’adresse du magasin.
Quelqu’un a une idée comment puis-je sortinger le disque? S’il vous plaît aider

Vous pouvez utiliser ceci pour sortinger le tableau de noms (qui est stocké dans les data[0] ):

 data[0] = data[0].OrderBy(x => x).ToArray(); 

Cependant, les données stockées dans les autres tableaux perdront toute corrélation significative avec le tableau de noms (par exemple, name[3] ne correspondra probablement pas au contact[3] ). Pour éviter cela, je vous recommande fortement d’utiliser une classe pour stocker ces informations:

 class MyClass // TODO: come up with a better name { public ssortingng Name { get; set; } public ssortingng Contact { get; set; } public ssortingng Address { get; set; } } 

Pour déclarer le tableau, utilisez:

 MyClass[] data = new MyClass[10]; data[0] = new MyClass // Populate first record { Name = "...", Contact = "...", Address = "...", }; 

Et pour sortinger le tableau:

 data = data.OrderBy(x => x.Name).ToArray(); 

Ou ca:

 Array.Sort(data, (x, y) => x.Name.CompareTo(y.Name)); 

La deuxième option est plus efficace car elle réorganise les éléments en place et ne nécessite pas l’allocation d’un nouveau tableau pour stocker les résultats.

Ou bien, utilisez une List :

 List data = new List(10); data.Add(new MyClass // Populate first record { Name = "...", Contact = "...", Address = "...", }); 

Et pour sortinger la liste:

 data.Sort((x, y) => x.Name.CompareTo(y.Name)); 

Les performances seront similaires à celles de la méthode Array.Sort . Toutefois, il s’agit d’une bien meilleure option si vous devez pouvoir append ou supprimer des éléments de votre liste de manière dynamic.