如何在列表中間插入一些數字(如果沒有這樣的數字)?將元素插入到列表中,如果條件符合C#
在下面的例子中,我試圖插入數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);
}
由於結果數量將在列表的末尾進入,但我想它後右三(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:反正我已經切換到二分查找方法,由於多種因素。大家感謝您的幫助!
您接受錯誤的解決方法檢查@EsotericScreenName評論答案之後.....它爲您提供了ANS錯誤.... – 2012-04-10 18:52:57
@PranayRana看到編輯..感謝注意到 – Alex 2012-04-10 18:55:58
只是要注意接受的答案仍然不回答你需要它的只是搜索和插入它不循環每個缺少的元素.................所以你需要根據那個修改你的代碼..... – 2012-04-10 19:01:48