Gần đây tôi đã bắt đầu sử dụng c # chuyển từ Java. Tôi dường như không thể tìm thấy làm thế nào để có được một mục danh sách theo chỉ mục. Trong java để có được mục đầu tiên của danh sách, nó sẽ là:
list1.get(0);
Tương đương trong c # là gì?
Gần đây tôi đã bắt đầu sử dụng c # chuyển từ Java. Tôi dường như không thể tìm thấy làm thế nào để có được một mục danh sách theo chỉ mục. Trong java để có được mục đầu tiên của danh sách, nó sẽ là:
list1.get(0);
Tương đương trong c # là gì?
Câu trả lời:
list1[0];
Giả sử loại danh sách có một bộ chỉ mục được xác định.
Bạn có thể sử dụng phương thức mở rộng ElementAt trong danh sách.
Ví dụ:
// Get the first item from the list
using System.Linq;
var myList = new List<string>{ "Yes", "No", "Maybe"};
var firstItem = myList.ElementAt(0);
// Do something with firstItem
using System.Linq;
.
myList[0]
ký hiệu tiêu chuẩn ?
.ElementAtOrDefault();
myCollectionWhichMightBeNull?.ElementAt(0)
hoặc để bảo vệ an toàn cho một yếu tố không tồn tại:myCollection.ElementAtOrDefault(0)?.SomeProperty
Visual Basic, C # và C ++ đều có cú pháp để truy cập thuộc tính Item mà không sử dụng tên của nó. Thay vào đó, biến chứa Danh sách được sử dụng như thể nó là một mảng.
List[index]
Xem ví dụ: https://msdn.microsoft.com/en-us/l Library / 0ebtbkkc (v = vs.110) .aspx
Câu hỏi cũ, nhưng tôi thấy rằng chủ đề này khá hoạt động gần đây, vì vậy tôi sẽ tiếp tục và ném hai xu của mình:
Chính xác là 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 dấu ngoặc vuông như thể bạn đang truy cập vào một mảng. Tuy nhiên, ngoài việc sử dụng chỉ mục số, nếu các thành viên của bạn có tên cụ thể, bạn thường có thể thực hiện tìm kiếm / truy cập đồng thời bằng cách nhập một cái gì đó như:
var temp = list1["DesiredMember"];
Bạn càng biết nhiều, phải không?
List
Cấu trúc dữ liệu .NET là Array
một "vỏ có thể thay đổi".
Vì vậy, bạn có thể sử dụng các chỉ mục để truy cập vào các yếu tố của nó như:
var firstElement = myList[0];
var secondElement = myList[1];
Bắt đầu với C # 8.0, bạn có thể sử dụng Index
và Range
các lớp để truy cập các phần tử. Họ cung cấp quyền truy cập từ cuối chuỗi hoặc chỉ truy cập một phần cụ thể của chuỗi:
var lastElement = myList[^1]; // Using Index
var fiveElements = myList[2..7]; // Using Range, note that 7 is exclusive
Bạn có thể kết hợp các chỉ mục và phạm vi với nhau:
var elementsFromThirdToEnd = myList[2..^0]; // Index and Range together
Ngoài ra, bạn có thể sử dụng ElementAt
phương pháp LINQ nhưng đối với 99% trường hợp thì điều này thực sự không cần thiết và chỉ là giải pháp hiệu suất chậm.
bạn có thể sử dụng chỉ mục để truy cập các yếu tố danh sách
List<string> list1 = new List<string>();
list1[0] //for getting the first element of the list