【发布时间】:2012-04-10 18:24:45
【问题描述】:
如果没有这样的数字,如何在列表中间插入一些数字?
在下面的示例中,我尝试插入数字 4
List<int> list1 = new List<int>(){ 0, 1, 2, 3, 5, 6 };
int must_enter = 4;
if (!list1.Contains(must_enter))
{
list1.Add(must_enter);
}
因为结果编号将在列表末尾输入,但我希望它在 3 之后(5 之前)。
请注意,由于项目的具体情况,我不能使用排序列表,但列表中的所有数字保证按升序排列 (0,2,6,9,10,. ..)
编辑:我知道一个错误,这就是我所做的:
List<int> list0 = new List<int>() { 1, 2, 3, 5, 6 };
int must_enter = 7;
if (!list0.Contains(must_enter))
{
if (must_enter < list0.Max())
{
int result = list0.FindIndex(item => item > must_enter || must_enter > list0.Max());
list0.Insert(result, must_enter);
}
else
{
list0.Add(must_enter);
}
}
edit2:无论如何,由于几个因素,我已经切换到 BinarySearch 方法。大家感谢您的帮助!
【问题讨论】:
-
你接受了错误的解决方案检查@EsotericScreenName 答案后的评论.....它给你一个错误......
-
@PranayRana 查看编辑.. 感谢您的关注
-
只是为了注意接受的答案仍然没有回答你需要什么它只是搜索和插入它不是为每个缺少的元素循环......所以你需要根据那个修改你的代码.....