【发布时间】:2018-03-28 00:06:56
【问题描述】:
我有一个对象列表,我试图通过两次迭代对其进行排序。
首先是按对象中的整数字段(即 1-1000)按升序对对象进行排序,然后通过对象中的布尔字段按 true 和 false 的布尔值排序。
我所拥有的是……
public void updateAdapter()
{
List<Object> foobar = db.Get(ObjectID);
foobar = foobar.OrderBy(s => int.Parse(s.Tag)).ThenByDescending(s => s.Duplicate).ToList();
adapter = new ListAdapter(this, foobar);
RunOnUiThread(() => adapter.NotifyDataSetChanged());
ListView.Adapter = adapter;
}
我的列表按整数字段 n 升序完美排序,但之后不按真值排序。我希望所有真值在按升序整数字段排序后都位于对象列表的顶部。
示例输入:
Lists of Objects Inputted:
FooBar(11, false),
FooBar(1, false),
FooBar(54, true),
FooBar(34, true)
FooBar(77, false),
FooBar(33, false)
List of Objects Outputted:
FooBar(1, false),
FooBar(11, false),
FooBar(33, false),
FooBar(34, true),
FooBar(54, true),
FooBar(77, false),
任何帮助都会是巨大的帮助。谢谢
【问题讨论】:
-
您能提供示例输入和输出数据吗?听起来您实际上想first按
Duplicate排序,then按Tag排序。 -
当然可以。将添加我得到的和我想要的:)