2015-07-16 11 views
5

Đôi khi, trong giai đoạn phát triển, tôi cần xem liệu có, ví dụ: một tên được thay đổi cho mỗi phần tử được tạo ra hoặc chỉ muốn phân biệt giữa các tên của các cá thể khác nhau trong một mảng. Hành vi đó là đúng cho giai đoạn phát triển và chỉ được áp dụng trong một khoảng thời gian ngắn (do đó không cần giải pháp lâu dài - Q & D là tốt).Làm thế nào để đếm mà không cần truy cập trong một lựa chọn?

Thông thường, tôi giới thiệu một bộ đếm theo cách sau nhưng nó chỉ khiến tôi nhớ rằng có thể có cách tốt hơn. Về cơ bản, tôi muốn mô phỏng hành vi của biến số lượt truy cập là cho mà không thực sự giới thiệu nó (lưu trú tại foreach).

int counter = 1; 
IEnumerable<Typo> result = originals.Select(original 
    => new Thingy { Name = "Hazaa" + counter++ }); 
+6

Sử dụng sự quá tải của [Chọn] (https://msdn.microsoft.com/en-us/library/bb534869 (v = vs.100) .aspx) bao gồm chỉ mục. –

+0

Bạn đã xem [ForEach] (https://msdn.microsoft.com/en-us/library/bwabdf9z (v = vs.110) .aspx) chưa? – Win

+2

Tiêu đề của bạn không khớp với câu hỏi. Tiêu đề nói về 'foreach' nhưng không có 'foreach' trong mã của bạn. –

Trả lời

12

Sử dụng this quá tải của Select

IEnumerable<Typo> result = originals.Select((original, counter) 
    => new Thingy { Name = "Hazaa" + (counter + 1) }); 
+0

Vâng, cần có một số loại intellisense cho điều này ... Chính xác những gì tôi đang tìm kiếm. 1 cho sự vô nghĩa nhưng cũng ngắn gọn. –

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