2012-04-23 27 views
7

Có cách nào để bạn có thể thêm giá trị vào chỉ mục cụ thể không? Tôi cố gắng làm chỉ mục và tôi có Danh sách. Có bất kỳ mẹo nào để thực hiện việc này trong ngữ cảnh này hay không: DC# cách để thêm giá trị vào Danh sách <T> tại chỉ số

public class Multime<T> 
{ 
    private List<Multime<T>> multiSets; 
    private List<T> multimea; 


    ***public Multime<T> this[int index] 
    { 
     get { return this.Multisets.ElementAt(index); } 
     set { this.Multisets.CopyTo(value,index); } 
    }*** 



    public List<Multime<T>> Multisets 
    { 
     get { return this.multiSets; } 
     set { this.multiSets = value; } 
    }//accesori Multimea de multimi 

    public List<T> Multimea 
    { 
     get { return this.multimea; } 
     set { this.multimea = value; } 
    }//Accesori Multime 
+1

Bạn đã thử xem các phương pháp đã được Danh sách cung cấp chưa? Có một khả năng khác biệt thực hiện chính xác những gì bạn cần. – Servy

+0

INSERT không tốt: D, tôi không muốn phần còn lại của danh sách được sửa đổi và tôi muốn thêm/thay thế tại chỉ mục – TyGerX

Trả lời

16

List<T>.Insert, có lẽ?

Nhưng tôi muốn đề nghị bạn có lẽ chỉ muốn lấy/ghi - không chèn:

public Multime<T> this[int index] 
{ 
    get { return Multisets[index]; } 
    set { Multisets[index] = value; } 
} 

Lưu ý rằng như C# 3, có những cách đơn giản viết những tài sản, btw:

public List<T> Multimea { get; set; } 
public List<Multime<T>> Multisets { get; set; } 

Nó thường không phải là một ý tưởng tốt để thực sự phơi bày bộ sưu tập sáng tác trực tiếp - nó có nghĩa là bạn không kiểm soát được những gì xảy ra trong các bộ sưu tập đó.

+0

tôi nghĩ rằng nó di chuyển phần tử [index] đến chỉ mục + 1 tôi không muốn ảnh hưởng đến phần còn lại của danh sách, tôi chỉ cần thay thế đối tượng tại chỉ mục – TyGerX

+0

@TyGerX: Vì vậy, bạn nên hỏi về * thay thế *, chứ không phải * thêm *. Xem chỉnh sửa của tôi. –

+0

đặt {Multisets [index] = value; } không hoạt động tôi không biết tại sao một số biên dịch lỗi becouse Multisetst là tôi nghĩ rằng – TyGerX

0

Hãy thử sử dụng List.Insert

Điều này sẽ giải quyết được sự cố bạn đang gặp phải.

21

Phương pháp .Insert() trên List<T> là chính xác cho mục đích này:

someList.Insert(2, someValue); 

này sẽ sửa đổi bộ sưu tập someList để chèn someValue tại index 2, đẩy giá trị khác lên một chỉ mục.

Thông tin khác here.

+0

Nó hoạt động (^ _ ^) ... –

Các vấn đề liên quan