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.