如何在c#中对Object数组列表进行排序



我正在进行一个项目,该项目专注于重新排列页面中的用户控件,例如,每个用户控件都有喜欢和不喜欢按钮,与其他用户控件统计数据相比,这些按钮将决定其在页面上的位置。为此,我的用户控制构造函数以以下方式创建一个信息数组:

private Object[] matrControls = new Object[3];
matrControls[0] = this; ///post
matrControls[1] = 0; ///precent of votes
matrControls[2] = 0; /// number of votes

然后我有另一种方法将数组返回到主代码

public Object[] arrReturn()
{
return matrControls;
}

在我的代码中,我手动添加了2个用户控件来工作和重新组织方法,然后";投票";然后改变了它的数量和百分比,然后我把它们放在对象数组的列表中:

private List<Object[]> ListPost = new List<Object[]>();
ListPost.Add(NewPost.arrReturn());

我想首先按投票百分比进行组织(例如,6个赞,4个不喜欢=60%(,然后如果我们在2个用户控件上有相同的百分比(6个赞4个不讨厌&60个赞40个不喜欢(,则按投票数量进行组织。这两个变量都应该保存在我的列表中。我的问题是,我如何按照第二个和第三个变量来组织列表,然后我如何改变它们在页面上的位置?如果有任何帮助,我将不胜感激。

您可以简单地创建类,而不是使用object[]

public class matrControls{
public int matrControls1 { get; set; }
public int matrControls2 { get; set; }
public int matrControls3 { get; set; }}
List<matrControls> matControlsList = new List<matrControls>();
matControlsList.Add(new matrControls{matrControls1=value1, matrControls2=value2, matrControls3=value3 });
matControlsList.Add(new matrControls{matrControls1=value1, matrControls2=value2, matrControls3=value3 });
var sortedList = matControlsList.OrderBy(control => control.matrControls1).ThenBy(control => control.matrControls2).ToList();

上面的代码展示了如何创建类,然后如何将其添加到列表中,然后根据需要对列表进行排序。

最新更新