如何从Listbox.ObjectCollection获取属性值

时间:2019-05-27 23:03:46

标签: c# visual-studio listbox

我用一组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标签中的字符串值。但是,程序不断崩溃,并出现空引用异常

0 个答案:

没有答案