我已经填充了值的通用列表,我需要对项目进行排序,第一个值应该与查询字符串相同。是否有可能对这些值进行比较和排序,我没有成功。
更新我的问题。
例如我有Id:1,2,3,4,5,我打开Id = 5的页面,所以我需要在我的searchResult上传递4作为列表中的第一项。
这段代码对我来说工作得很好并且显示5作为第一项,但是我需要强制例如p2.ObjectId传递为字符串值,例如“4294”,并且具有此Id的对象应首先出现:
Sort(searchresult);
static void Sort(List<CollectionsItem> list)
{
list.Sort((p1, p2) => string.Compare(p2.ObjectId, p1.ObjectId, true));
}
答案 0 :(得分:1)
听起来不像你想要的那样。
如果你想把X放在顶部,那就是
var item = MyList[MyList.IndexOf(Target)];
MyList.Remove(item);
MyList.Insert(item,0);
如果您希望Target位于顶部,其余位于objectid
找到它,删除它,对其余部分进行排序并将其插入零...
答案 1 :(得分:1)
听起来您想要将属性ObjectId的值作为数字而不是字符串进行比较。这是我的建议:
static void Sort(List<CollectionsItem> list)
{
list.Sort((p1, p2) =>
{
if (int.Parse(p1.ObjectId) == int.Parse(p2.ObjectId))
return 0;
else if (int.Parse(p2.ObjectId) > int.Parse(p1.ObjectId))
return 1;
else
return -1;
});
}