我用一组mp3文件对一个mp3播放器进行编码,每个文件都具有添加的标签,例如标题,艺术家等。我试图创建一个排序函数,根据属性值对项目进行排序,即:按Artist / Title等进行排序。我已尽力与其他解决方案一起工作,但似乎无法使其工作。问题似乎出在尝试从对象获取属性值时。 mp3位于ListBox ObjectCollection中
在顶部的消息框是我试图查找问题所在,因为程序不断返回空引用异常错误。
public int partition(ListBox.ObjectCollection list, int start, int end, string prop)
// static int partition(string[] arr, int start, int end)
{
int pivot = end;
int i = start, j = end;
string temp;
while (i < j)
{
MessageBox.Show(" " + list.IndexOf(i).GetType().GetProperty("Title").GetValue(list));
MessageBox.Show(" " + list.IndexOf(i).GetType().GetProperty(prop).GetValue(prop).ToString());
while (i < end && string.Compare(list[i].GetType().GetProperty(prop).ToString(), list[pivot].GetType().GetProperty(prop).ToString()) < 0)
i++;
while (j > start && string.Compare(list[j].GetType().GetProperty(prop).ToString(), list[pivot].GetType().GetProperty(prop).ToString()) > 0)
j--;
if (i < j)
{
temp = list[i].GetType().GetProperty(prop).ToString();
list[i].GetType().GetProperty(prop).ToString().Equals(list[j].GetType().GetProperty(prop).ToString());
list[j].GetType().GetProperty(prop).ToString().Equals(temp);
}
}
temp = list[pivot].GetType().GetProperty(prop).ToString();
list[pivot].GetType().GetProperty(prop).ToString().Equals(list[j].GetType().GetProperty(prop).ToString());
list[j].GetType().GetProperty(prop).ToString().Equals(temp);
return j;
}
我正在尝试从当前列表索引处的mp3对象获取title标签中的字符串值。但是,程序不断崩溃,并出现空引用异常