我的家庭作业任务:我在 C# 中获得了通用列表,我根据实现时间对其进行了List.Sort排序CompareTo()。我有另一个相同结构对象的列表,我需要将它们插入到我的第一个排序列表中,而不是将它们添加到列表的末尾,然后再次List.Sort插入,而是立即插入到已排序的列表中,并在插入后对列表进行排序。我该怎么做?长话短说:我不能使用 SortedList,只能使用通用列表,而且我不能将我的项目添加到 MyList1 的末尾,然后再添加到 MyList1.Sort() 我的列表如下所示:
List<MyClass> MyList1 = new List<MyClass>():
List<MyClass> MyList2 = new List<MyClass>()
MyList1.Sort();
我需要按照排序的相同顺序MyList2插入到的项目。MyList1我的CompareTo()方法,它按两个属性排序:
public int CompareTo(MyClass next)
{
int pos = String.Compare(this.name, next.name, StringComparison.CurrentCulture);
if ((this.price < next.price) || ((this.price== next.price)
&& (pos > 0)))
{
return 1;
}
else
{
return - 1;
}
}
我想出了它应该是什么样子,这很好用:
static void Inserting(List<MyClass> List1,
List<MyClass> List2)
{
foreach (var item in List2)
{
var i = 0;
while (i < List1.Count && item.CompareTo(List1[i]) > 0)
i++;
List1.Insert(i, item);
}
}
达令说
慕村225694
相关分类