Đây có thể là một câu hỏi cú pháp đơn giản, nhưng tôi không thể hiểu được.Thực hiện IEnumerable với một Array
Thông thường, tôi sẽ làm điều này:
public class OrderBook : IEnumerable<PriceLevel>
{
private readonly List<PriceLevel> PriceLevels = new List<PriceLevel>();
public IEnumerator<PriceLevel> GetEnumerator()
{
return PriceLevels.GetEnumerator();
}
IEnumerator IEnumerable.GetEnumerator()
{
return PriceLevels.GetEnumerator();
}
}
Nhưng thay vì một danh sách, tôi muốn sử dụng một mảng - như thế này:
public class ArrayOrderBook : IEnumerable<PriceLevel>
{
private PriceLevel[] PriceLevels = new PriceLevel[500];
public IEnumerator<PriceLevel> GetEnumerator()
{
return PriceLevels.GetEnumerator();
}
IEnumerator IEnumerable.GetEnumerator()
{
return PriceLevels.GetEnumerator();
}
}
Các IEnumerator IEnumerable.GetEnumerator()
dường như biên dịch tốt - nhưng công chúng IEnumerator<PriceLevel>
nói rằng tôi cần một số loại diễn viên - cách tốt nhất để làm điều này là gì?
William
Tại sao? Tại sao sử dụng một mảng cho điều này? – Oded
'Danh sách' được sao lưu bằng một mảng, do đó bạn không đạt được bất kỳ thứ gì, ngoại trừ việc làm quá mức công việc của bạn. – Tudor
@Tudor tùy thuộc vào logic khác trong lớp, có thể có ý nghĩa hơn với 'PriceLevels' là một mảng (ví dụ: kích thước cố định). Không có gì sai với mong muốn tái cấu trúc đó. –