2012-04-11 6 views
22

私は常に新しい値を追加する必要があるが、増分して2つの値の間に挿入する必要があるリストがある。c#リスト<int> 2つの値の間に新しい値を挿入する方法

List<int> initializers = new List <int>(); 

initializers.Add(1); 
initializers.Add(3); 

したがって、イニシャライザは1,3値を持ちます。

これで、新しい数値セットが処理されます。初期化子は値を持つ必要があります。

1、5、3、7

、iは数値の別のセットを処理する場合には

1、9、5、13、3、11、7、15

iはなるべき挿入された新しい値を適切に生成する方法を知っています.2つまたは3つ以上のループを追加しなくても、値の位置を移動することなく、イニシャライザの既存の値の間に挿入するだけの助けが必要です。

+3

ドキュメントを読んでください。 = vs.80).aspx – Dima

+0

またはさらに検索 - http://stackoverflow.com/questions/460223/whats-a-good-way-to-insert-something-in-the-ミドルフォーザリスト、またはhttp://stackoverflow.com/questions/9462518/short-way-to-add-item-after-item-in-listまたは – dash

答えて

39
List<int> initializers = new List <int>(); 

initializers.Add(1); 
initializers.Add(3); 

int index = initializers.IndexOf(3); 
initializers.Insert(index, 2); 

はあなたに1,2,3を与えます。

+2

が正解に変更されました。 – gdubs

+0

ありがとう!しかし、リストに「3」が含まれているかどうかわからない場合はどうなりますか? (リスト内に他の項目が何であってもインデックス0にリスト項目を追加したい) – Kokodoko

+1

.Insert(0、) – Phil

11

使用List<T>.Insert

initializers.Insert(index, value); 
+0

私は参照してください。私はこれが存在するのを知らなかった。笑。新しいC#で。ありがとう!!この方が詳細なので、 – gdubs

3

List.Add()の代わりにList.Insert()を使用すると、特定の位置にアイテムを挿入できます。要素を並べ替えの計算が実行可能な方法があるかどう

0

別のアプローチは、次のとおりです。http://msdn.microsoft.com/en-us/library/sey5k5z4(v:

list.Insert(num); 
// ... 
list.Insert(otherNum); 

// Sorting function. Let's sort by absolute value 
list.Sort((x, y) => return Math.Abs(x) - Math.Abs(y)); 
関連する問題