Tout d'abord, cela ne devrait pas être une structure. Il est plus grand que 16 octets, de sorte que vous n'obtenez pas les avantages de performance d'avoir une structure. En outre, il ne représente pas une seule valeur, donc il n'a pas de sens sémantique pour en faire une structure. Fais juste un cours à la place.
La classe Array
a une méthode Sort
que vous pouvez utiliser:
Array.Sort(theArray, (x,y) => string.Compare(x.Artist,y.Artist));
Si vous n'avez pas C# 3 que vous utilisez un délégué au lieu de l'expression lambda:
Array.Sort(theArray, delegate(uLib x, uLib y) { return string.Compare(x.Artist,y.Artist) });
Edit:
Voici un exemple de ce à quoi pourraient ressembler vos données en tant que classe:
public class ULib {
private string _path, _artist, _title, _album, _length;
public string Path { get { return _path; } set { _path = value; } }
public string Artist { get { return _artist; } set { _artist = value; } }
public string Title { get { return _title; } set { _title = value; } }
public string Album { get { return _album; } set { _album = value; } }
public string Length { get { return _length; } set { _length = value; } }
public ULib() {}
public ULib(string path, string artist, string title, string album, string length) {
Path = path;
Artist = artist;
Title = title;
Album = album;
Length = length;
}
}
En C#, il y a une forme courte pour une propriété. Au lieu de cela crée automatiquement que l'écriture de code pour une variable privée et un setter et getter pour y accéder,:
public string Path { get; set; }
classe publique ULib ainsi –
Cela fonctionne très bien. Merci. Vous dites que je ne devrais pas utiliser une structure, comment organiseriez-vous ce type de données? – Krakerjak
Placez-le dans la classe et utilisez les propriétés à la place des champs publics. –