如何排序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));
        }

如何排序Generic.List<>通过与1个字符串比较

听起来你根本不需要排序。

如果你想把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;
                });
        }