Прежде всего, это не должно быть структурой. Он больше 16 байт, поэтому вы не получаете преимущества производительности при наличии структуры. Кроме того, он не представляет отдельное значение, поэтому семантически не имеет смысла делать его структурой. Просто сделайте это классом.
Класс Array
имеет метод Sort
, который вы можете использовать:
Array.Sort(theArray, (x,y) => string.Compare(x.Artist,y.Artist));
Если у вас нет C # 3, вы используете делегат вместо лямбда-выражения:
Array.Sort(theArray, delegate(uLib x, uLib y) { return string.Compare(x.Artist,y.Artist) } );
Edit:
Вот пример того, как ваши данные могут выглядеть как класс:
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;
}
}
В C # там есть краткая форма для свойства. Вместо того, чтобы писать код для закрытой переменной, а также для установки и получения для ее доступа, он создает это автоматически:
public string Path { get; set; }