您可以使用它对名称数组(存储在data[0]
)进行排序:
data[0] = data[0].OrderBy(x => x).ToArray();
但是,这将导致存储在其他数组中的数据与名称数组失去任何有意义的相关性(例如,name[3]
很可能不会与 匹配contact[3]
)。为了避免这种情况,我强烈建议使用一个类来存储这些信息:
class MyClass // TODO: come up with a better name
{
public string Name { get; set; }
public string Contact { get; set; }
public string Address { get; set; }
}
要声明数组,请使用:
MyClass[] data = new MyClass[10];
data[0] = new MyClass // Populate first record
{
Name = "...",
Contact = "...",
Address = "...",
};
并对数组进行排序:
data = data.OrderBy(x => x.Name).ToArray();
或这个:
Array.Sort(data, (x, y) => x.Name.CompareTo(y.Name));
第二个选项更有效,因为它重新排列元素,并且不需要分配新数组来存储结果。
或者,使用List<T>
:
List<MyClass> data = new List<MyClass>(10);
data.Add(new MyClass // Populate first record
{
Name = "...",
Contact = "...",
Address = "...",
});
并对列表进行排序:
data.Sort((x, y) => x.Name.CompareTo(y.Name));
这将具有与该方法相似的性能Array.Sort
,但是,如果您需要能够从列表中动态添加或删除元素,这是一个更好的选择。