Kteam Q&A Community

Cộng đồng hỏi đáp về các vấn đề trong lập trình, công nghệ thông tin.

1

List trong C#..

Em có 1 method như sau:

 

        private MatchCaseData Crunch(List<int> lst, int crunchNo)
        {
            List<int> buffer = lst;
            for (int i = 0; i < buffer.Count; i++)
            {
                buffer.RemoveAt(i);
                #region Unnecessary Part
            }

Em remove element của buffer nhưng sao cái lst cũng  bị mất element

1 câu trả lời Thêm câu trả lời

0
K9 đã trả lời 2018-04-14 11:37:26

2 thằng đó là 1 mà bạn. nó là tham chiếu. muốn 2 thằng tách biệt bạn phải clone hoặc tạo 1 thằng mới và gán dữ liệu cho nó

C# learner đã sửa 2018-04-14 14:16:15

thế này vẫn bị anh ạ :(

            List<int> vs = new List<int>() { 1, 2, 3, 4 };
            List<int> vs2 = vs;
            vs.RemoveAt(0);

 

0 bình chọn
K9 đã bình luận 2018-04-15 10:19:09

bạn làm vậy vẫn là tham chiếu mà. bạm xem list có hàm Clone k có thì thằng vs2 = vs.Clone();

 

0 bình chọn

Câu trả lời của bạn

Bạn có thể trả lời câu hỏi này? Hãy chia sẻ nó cho mọi người.

Hủy bỏ hoặc

Chiến dịch

Kteam - Howkteam Free Education