如何排序Generic.List<>通过与1个字符串比较
本文关键字:1个 比较 字符串 List 何排序 排序 Generic | 更新日期: 2023-09-27 18:17:22
我有一个通用列表已经填满了值,我需要对项目进行排序,第一个值应该与查询字符串相同。是否有可能比较和排序这些值,我尝试没有成功。
我在更新我的问题。
例如,我有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));
}
听起来你根本不需要排序。
如果你想把X放在顶部那就用
var item = MyList[MyList.IndexOf(Target)];
MyList.Remove(item);
MyList.Insert(item,0);
如果你想让目标在顶部,其余的按objectid排序
找到它,删除它,对其余部分进行排序,并将其插入到0…
听起来您想将属性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;
});
}