2012-04-11 44 views
22

vì vậy tôi có một danh sách mà tôi cần phải thêm giá trị mới liên tục nhưng khi tôi cần tôi tăng nó và chèn nó vào giữa hai giá trị.C# list <int> cách chèn một giá trị mới vào giữa hai giá trị

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

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

để người khởi tạo có giá trị 1, 3.

tôi sẽ xử lý một nhóm số mới. các initializers sẽ cần phải có các giá trị.

1, 5, 3, 7

và nếu tôi xử lý một tập hợp các số nó nên trở thành

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

i biết cách tạo đúng các giá trị mới được chèn vào, tôi chỉ cần một số trợ giúp để chèn nó vào giữa các giá trị hiện có của các trình khởi tạo mà không phải thêm 2 hoặc 3 vòng lặp nữa để di chuyển các vị trí của các giá trị.

+3

Vui lòng đọc tài liệu: http://msdn.microsoft.com/en-us/library/sey5k5z4(v = vs.80) .aspx – Dima

+0

Hoặc thậm chí tìm kiếm - http://stackoverflow.com/questions/460223/whats-a-good-way-to-insert-something-in-the-middle-of-a-list, hoặc http://stackoverflow.com/questions/9462518/short-way-to-add-item-after-item-in-list hoặc ... – dash

Trả lời

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

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

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

Cung cấp cho bạn 1,2,3.

+2

đã thay đổi câu trả lời đúng vì câu trả lời này chi tiết hơn. – gdubs

+0

Cảm ơn! Nhưng nếu bạn không biết nếu có một '3' trong danh sách hay không? (Tôi chỉ muốn thêm mục danh sách của mình tại chỉ số 0 cho dù có gì khác trong danh sách) – Kokodoko

+1

.Insert (0, ) – Phil

11

Sử dụng List<T>.Insert:

initializers.Insert(index, value); 
+0

tôi hiểu. tôi không biết điều này đã tồn tại. lol. mới với C#. cảm ơn!! – gdubs

3

Bạn chỉ có thể sử dụng List.Insert() thay vì List.Add() để chèn các mục vào một vị trí cụ thể.

0

cách tiếp cận khác, nếu có một cách tính toán khả thi phân loại các yếu tố, đó là:

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)); 
Các vấn đề liên quan