2013-03-17 47 views
207

Gần đây tôi đã bắt đầu sử dụng C# chuyển từ Java. Tôi không thể tìm cách để có được một mục danh sách theo chỉ mục. Trong java để lấy mục đầu tiên của danh sách, nó sẽ là:Lấy một mục danh sách theo chỉ mục

list1.get(0); 

Tương đương với C# là gì?

+3

Vì người dùng được nhìn thấy lần cuối vào ngày 21 '13. – displayName

+3

Xem http://stackoverflow.com/questions/5326874/why-would-i-use-enumerable-elementat-versus-the-operator đối với một số cuộc thảo luận về việc có nên sử dụng toán tử [] hoặc phương thức ElementAt() hay không. – ngm

Trả lời

236
list1[0]; 

Loại danh sách giả định có trình chỉ mục được xác định.

+2

Câu trả lời duy nhất giải thích tại sao có thể truy cập danh sách, là đối tượng, như một mảng – PrashanD

156

Bạn có thể sử dụng phương pháp mở rộng ElementAt trên danh sách.

Ví dụ:

var myList = new List<string>{ "Yes", "No", "Maybe"}; 

// Lấy mục đầu tiên trong danh sách

using System.Linq; 
var firstItem = myList.ElementAt(0); 

// Do something với firstItem

+15

Chỉ cần lưu ý rằng ElementAt() yêu cầu 'sử dụng System.Linq;'. – ngm

+11

Có lợi thế nào về điều này qua ký hiệu 'myList [0]' chuẩn không? – AnalogWeapon

+0

"Tại sao tôi sử dụng Enumerable.ElementAt() so với toán tử []?" https://stackoverflow.com/questions/5326874/why-would-i-use-enumerable-elementat-versus-the-operator – Lavande

14

Cũ câu hỏi, nhưng tôi thấy rằng chủ đề này là khá thời gian gần đây hoạt động, vì vậy tôi sẽ đi trước và ném vào hai xu của tôi:

Khá chính xác những gì Mitch nói. Giả sử lập chỉ mục thích hợp, bạn có thể tiếp tục và sử dụng ký hiệu ngoặc vuông như thể bạn đang truy cập một mảng. Ngoài việc sử dụng các chỉ số số, tuy nhiên, nếu thành viên của bạn có tên cụ thể, bạn có thể thường xuyên làm loại tìm kiếm đồng thời/truy cập bằng cách gõ một cái gì đó như:

var temp = list1["DesiredMember"]; 

Bạn càng biết nhiều, phải không?

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