2014-04-23 20 views
14

Tôi có một danh sách trong C# trong đó tôi đang thêm danh sách trường.Now trong khi thêm tôi phải kiểm tra điều kiện, nếu điều kiện thỏa mãn thì tôi cần xóa hàng cuối cùng được thêm từ danh sách. Đây là mẫu mã của tôi ..Làm cách nào để xóa phần tử cuối cùng được thêm vào Danh sách?

List<> rows = new List<>(); 
    foreach (User user in users) 
    { 
     try 
     { 
      Row row = new Row(); 
      row.cell = new string[11]; 
      row.cell[1] = user.""; 
      row.cell[0] = user.""; 
      row.cell[2] = user."";   

      rows.Add(row); 

      if (row.cell[0].Equals("Something")) 
      { 

       //here i have to write code to remove last row from the list 
       //row means all the last three fields 

      } 

     } 

Vì vậy, câu hỏi của tôi là làm thế nào để loại bỏ hàng cuối cùng ra khỏi danh sách trong C#. Xin hãy giúp tôi.

+4

Là 'Danh sách <>' và 'người dùng." "' Hợp lệ C#? –

+6

Điểm bổ sung và loại bỏ điều tiếp theo là gì? Kiểm tra điều kiện đầu tiên và nếu không đáp ứng thì thêm hàng hoặc người nào khác không thêm nó. –

+0

Không thể xóa mục LAST ADDED trong lớp List nếu bạn không lưu trữ chỉ mục đầu vào bên ngoài một nơi nào đó. Tôi cho rằng bạn có nghĩa là để loại bỏ chỉ mục cuối cùng, nhưng sau đó toàn bộ ví dụ bạn cung cấp chỉ là vô nghĩa. – Tarec

Trả lời

9

Nó sẽ không có ý nghĩa hơn không để thêm hàng ở nơi đầu tiên?

Row row = new Row(); 
//...  

if (!row.cell[0].Equals("Something")) 
{ 
    rows.Add(row); 
} 

TBH, tôi muốn đi một bước xa hơn bằng cách kiểm tra "Something" chống user."", và thậm chí không instantiating một trừ khi điều kiện là hài lòng, nhưng nhìn thấy như user."" sẽ không biên dịch, tôi sẽ rời khỏi đó như là một tập thể dục cho người đọc.

+1

Có những trường hợp bạn có thể muốn thêm rồi xóa mục bạn vừa thêm vào danh sách. Ví dụ: nếu có nhiều điều kiện if-elseif để kiểm tra do các lôgic kinh doanh khác nhau. Trong trường hợp này, bạn có thể thêm hàng đầu tiên trước các điều kiện if-elseif. Nếu sau khi bạn xác nhận tất cả các điều kiện và không có điều kiện nào trong số chúng thỏa mãn thì hãy xóa hàng này khỏi danh sách. Bạn có thể đặt các hàng. Thêm() vào mỗi điều kiện, nhưng điều đó có nghĩa là nếu bạn có 10 câu lệnh IF, thì bạn phải thêm các hàng. Thêm() vào mỗi câu lệnh IF 10. – Dongminator

57

Tôi nghĩ rằng cách hiệu quả nhất để làm điều này là này là sử dụng RemoveAt:

rows.RemoveAt(rows.Count - 1) 
4

Bạn có thể sử dụng phương pháp List<T>.RemoveAt:

rows.RemoveAt(rows.Count -1); 
10
rows.RemoveAt(rows.Count - 1); 
+1

Chết tiệt, không có gì giống như phương thức pop_back() trong C#? Đó là kinda sucks. – antred

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